Redis五大数据类型使用详解-List-Set

[Redis五大数据类型使用详解-String,请见上一篇博文]

二. List 类型

注意redis中的key只能是字符串类型,value对应有5种类型,但是每个类型中也只能存字符串。例如:”key”: [“aaa”, “bbb”, “ccc”…].
从左边/右边插入一个或多个值:指令lpush/rpush ...
在这里插入图片描述
从左边/右边取出一个值:指令lpop/rpop key 从左边取出的是ddd,而不是aaa,因为lpush指令添加顺序是:
[“aaa”]->[“bbb”, “aaa”]->[“ccc”, “bbb”, “aaa”]->[“ddd”, “ccc”, “bbb”, “aaa”]
在这里插入图片描述
Redis五大数据类型使用详解-List-Set_第1张图片
如果所有的值都取出,键也销毁。
指令rpoplpush 表示从key1列表右边取出一个值,插入到key2列表左边。
按照索引下标获得元素(从左到右):指令lrange
Redis五大数据类型使用详解-List-Set_第2张图片
通过索引获得具体某个元素:指令lindex 索引从左到右排列从0开始,从右到左从-1开始。
Redis五大数据类型使用详解-List-Set_第3张图片
获得列表长度:指令llen
在这里插入图片描述
key前/后插入值:linsert before/after
Redis五大数据类型使用详解-List-Set_第4张图片
删除列表中的元素:指令lrem 表示对键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 ...已经存在于集合内的member将被忽略,不重复添加。当向集合中添加已存在元素时将添加失败,状态码是0
在这里插入图片描述
Redis五大数据类型使用详解-List-Set_第5张图片
查看set集合中的所有成员:指令smembers 。下例中1表示添加成功,而不是集合长度。因此,smembers指令是查看,而不是取出集合中的成员。
Redis五大数据类型使用详解-List-Set_第6张图片
Redis五大数据类型使用详解-List-Set_第7张图片
判断集合中是否包含某个成员:指令sismember 如果存在则返回1,不存在返回0
Redis五大数据类型使用详解-List-Set_第8张图片
返回集合中元素的个数:指令scard
Redis五大数据类型使用详解-List-Set_第9张图片
删除集合中的某个/多个元素:指令srem ...
Redis五大数据类型使用详解-List-Set_第10张图片
随机从集合中取出一个值:指令spop 注意:pop含义是删除。【可应用场景:抽奖】
Redis五大数据类型使用详解-List-Set_第11张图片
随机从集合中输出n个值:指令srandmember 注意:不会删除元素!
Redis五大数据类型使用详解-List-Set_第12张图片
返回两个集合的交集元素:指令sinter
Redis五大数据类型使用详解-List-Set_第13张图片
返回两个集合的并集元素:指令sunion
Redis五大数据类型使用详解-List-Set_第14张图片
返回两个集合的差集元素:指令sdiff 注意:求差集有顺序问题
Redis五大数据类型使用详解-List-Set_第15张图片
[hash,zset使用介绍,请见下一篇博文]

你可能感兴趣的:(数据库,redis,数据库,缓存)