[Redis五大数据类型使用详解-String,请见上一篇博文]
二. List 类型
注意redis中的key只能是字符串类型,value对应有5种类型,但是每个类型中也只能存字符串。例如:”key”: [“aaa”, “bbb”, “ccc”…].
从左边/右边插入一个或多个值:指令lpush/rpush <key> <value1> <value2> <value3>...
从左边/右边取出一个值:指令lpop/rpop key
从左边取出的是ddd,而不是aaa,因为lpush
指令添加顺序是:
[“aaa”]->[“bbb”, “aaa”]->[“ccc”, “bbb”, “aaa”]->[“ddd”, “ccc”, “bbb”, “aaa”]
如果所有的值都取出,键也销毁。
指令rpoplpush <key1> <key2>
表示从key1列表右边取出一个值,插入到key2列表左边。
按照索引下标获得元素(从左到右):指令lrange <key> <start> <stop>
通过索引获得具体某个元素:指令lindex <key> <index>
索引从左到右排列从0开始,从右到左从-1开始。
获得列表长度:指令llen <key>
在key
的<value>
前/后插入<newvalue>
值:linsert <key> before/after <value> <newvalue>
删除列表中的元素:指令lrem <key> <n> <value>
表示对键key的值,如果n是正数则从左往右数删n个value值,如果n是负数则从右往左数删n个value值,如果n=0表示删除所有的value值。
三. Set类型
Set类似于list结构,区别在于set有去重功能。set是无序集合,底层是value为null的hash表【hash是一个map结构】。所以操作时间复杂度是O(1)。set提供了判断某个成员是否在一个Set集合内的重要接口,是list无法提供的功能。
向set集合中添加元素:指令sadd <key> <value1> <value2>...
已经存在于集合内的member将被忽略,不重复添加。当向集合中添加已存在元素时将添加失败,状态码是0
查看set集合中的所有成员:指令smembers <key>
。下例中1表示添加成功,而不是集合长度。因此,smembers
指令是查看,而不是取出集合中的成员。
判断集合中是否包含某个成员:指令sismember <key> <value>
如果存在则返回1,不存在返回0
返回集合中元素的个数:指令scard <key>
删除集合中的某个/多个元素:指令srem <key> <value1> <value2>...
随机从集合中取出一个值:指令spop <key>
注意:pop含义是删除。【可应用场景:抽奖】
随机从集合中输出n个值:指令srandmember <key> <n>
注意:不会删除元素!
返回两个集合的交集元素:指令sinter <key1> <key2>
返回两个集合的并集元素:指令sunion <key1> <key2>
返回两个集合的差集元素:指令sdiff <key1> <key2>
注意:求差集有顺序问题
[hash,zset使用介绍,请见下一篇博文]