Redis官网这样定义Redis:”Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.”不同于一般的key-value产品,Redis支持五种类型的数据结构:strings, hashes, lists, sets, sorted sets。
1.Redis
Redis通常被认为是一个可持久化的内存储器键-值(key-value)数据库。然而,这是比较偏面的一种定义,仅仅认为Redis是一个key-value存储器,会局限你对Redis解决问题能力的认知。
事实上,Redis主要的5种数据结构中,只有一种数据结构是典型的key-value结构。因此,理解Redis是什么的关键点在于:搞清楚这5种数据结构的工作机制,以及每种数据结构的适用场景是至关重要的。
2.数据库
Redis拥有您所熟悉的传统数据库中的一些基本概念。如,一个数据库中会包含一组数据。一个典型的数据库应用场景是将一个应用程序的的所有数据组合起来,使其与另一个应用程序的数据区分开来。
在Redis中,数据库是用数字区分的,默认使用的数据库编号是0。如果你想要选择其他编号的数据库,只需使用SELECT命令即可,如:select 1。
3.key和value
虽然Redis不仅仅是一个key-value存储器,但Redis的5中数据结构中的每一个都至少有一个key和一个value。
key是用来标识数据块的,value则是key所关联的具体的值。我们需要经常与key打交道,对于value而言,它可以存储字符串、整型或者序列化的对象(如JSON,XML等等)。在大多数情况下,Redis视value为字节数组,而不关心它们具体是什么类型。
在Redis看来,key是极其重要的,而value则一点不重要,value可以是任何东西,因为Redis从来不需要去读取和理解它们。比如,就查询操作来说,Redis只能使用key而无法使用value来做查询操作。
4.快速
Redis性能卓越,速度很快。主要得益于:拥有高效的数据结构、对查询的限制以及在存储器上存储数据等方面。但是,也要明白Redis并不适用于所有场景。
至于Redis的优缺点,以及Redis与其他key-value缓存产品的差异网上有很多类似的介绍,此处不再赘述。
5.其他
本文是Redis学习笔记的开篇,后续文章会对Redis的基本使用方法、基本特性以及Redis客户端库等内容做相应的介绍。声明:本系列文章是我对Redis官网文档的学习和总结,由于本人水平有限,难免有错误之处,请指正。
参考:
https://redis.io/topics/introduction
http://openmymind.net/2012/1/23/The-Little-Redis-Book/