一、字符串类型
字符串类型是redis中最基本的数据类型,它可以存储任何形式的数据,例如数字、文本、图片等等。字符串类型最大的特点就是其操作非常快速,且redis对字符串类型的支持非常丰富。
下面是一个基本的字符串类型的示例:
redis> set key value OK redis> get key "value"
除了上述最基本的设置、获取操作外,还有很多其他的操作,例如追加(append)、获取子字符串(getrange)、设置并返回原值(getset)等等。
字符串类型的应用场景很广泛,例如缓存、计数器等等。
二、列表类型
列表类型是一种有序、可重复的数据结构,其内部元素是一个个字符串类型的值,不同的是列表类型在插入、删除操作上非常方便。
下面是一个基本的列表类型的示例:
redis> lpush list1 value1 1 redis> rpush list1 value2 2 redis> lrange list1 0 -1 1) "value1" 2) "value2"
上述操作表示向列表类型的“list1”中分别插入了“value1”和“value2”,然后通过lrange命令获取了整个列表的值。
除了基本的插入、删除操作之外,还有很多其他的操作,例如将列表中的元素进行修剪(ltrim)、插入元素到指定元素前方或后方(linsert)等等。
列表类型的应用场景也很广泛,例如消息队列、历史记录等等。
三、哈希类型
哈希类型是一种键值对存储的数据结构,其中的键和值都是字符串类型的值。与其他的键值对存储方式不同的是,哈希类型内部是一个个的键值对集合。
下面是一个基本的哈希类型的示例:
redis> hset hash1 key1 value1 1 redis> hset hash1 key2 value2 1 redis> hgetall hash1 1) "key1" 2) "value1" 3) "key2" 4) "value2"
上述操作表示向哈希类型的“hash1”中分别插入了键值对“key1-value1”和“key2-value2”,然后通过hgetall命令获取了整个哈希类型的值。
除了基本的插入、删除操作之外,还有很多其他的操作,例如获取所有键(hkeys)、获取所有值(hvals)等等。
哈希类型的应用场景也很广泛,例如用户信息、商品属性等等。
四、集合类型
集合类型是一种无序、不重复的数据结构,其中的元素都是字符串类型的值。与其他的集合类型不同的是,集合类型内部元素是不允许重复的。
下面是一个基本的集合类型的示例:
redis> sadd set1 value1 1 redis> sadd set1 value2 1 redis> smembers set1 1) "value1" 2) "value2"
上述操作表示向集合类型的“set1”中分别插入了“value1”和“value2”,然后通过smembers命令获取了整个集合类型的值。
除了基本的插入、删除操作之外,还有很多其他的操作,例如返回集合中元素的个数(scard)、求多个集合的交集(sinter)等等。
集合类型的应用场景也很广泛,例如好友列表、标签等等。
五、有序集合类型
有序集合类型是一种有序、不重复的数据结构,其中的元素都是字符串类型的值。与其他的有序集合类型不同的是,有序集合类型内部元素是按照一定分值顺序排列的。
下面是一个基本的有序集合类型的示例:
redis> zadd zset1 1 value1 1 redis> zadd zset1 2 value2 1 redis> zrange zset1 0 -1 1) "value1" 2) "value2"
上述操作表示向有序集合类型的“zset1”中分别插入了分值为1的“value1”和分值为2的“value2”,然后通过zrange命令获取了整个有序集合类型的值。
除了基本的插入、删除操作之外,还有很多其他的操作,例如返回分值在指定范围内的元素(zrangebyscore)、求多个有序集合的交集(zinterstore)等等。
有序集合类型的应用场景也很广泛,例如排行榜、带权值的标签等等。