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

[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使用介绍,请见下一篇博文]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值