Redis Set数据类型操作指令

谁践踏了优雅 2021-12-12 05:23 357阅读 0赞

Set类型看作为没有排序的字符集合。Set可包含的最大元素数量是4294967295。
如果多次添加相同元素,Set中将仅保留该元素的一份拷贝。

sadd myset a b c 若key不存在,创建该键及与其关联的set,依次插入a ,b,c若key存在,则插入value中,若a 在myset中已经存在,则插入了 b 和 c 两个新成员。

spop myset 尾部的b被移出,事实上b并不是之前插入的第一个或最后一个成员
srem myset a d f 若f不存在, 移出 a、d ,并返回2

smove myset myset2 a 将a从 myset 移到 myset2,

sismember myset a 判断 a 是否已经存在,返回值为 1 表示存在。

smembers myset 查看set中的内容

scard myset 获取Set 集合中元素的数量

srandmember myset 随机的返回某一成员

sdiff myset1 myset2 myset3 1和2得到一个结果,拿这个集合和3比较,获得myset1中独有的值

20190710155005689.png

sdiffstore diffkey myset myset2 myset3 3个集和比较,获取myset 独有的元素,并存入diffkey 关联的Set中

sinter myset myset2 myset3 获得3个集合中都有的元素(交集)

sinterstore interkey myset myset2 myset3 把交集存入interkey 关联的Set中

sunion myset myset2 myset3 获取3个集合中的成员的并集

sunionstore unionkey myset myset2 myset3 把并集存入unionkey 关联的Set中

使用场景:

  • sadd+sinter 比如微博里用户喜欢关注哪种类型新闻,这种不同用户之间有并集差集等集合关系的。需要注意事务
  • spop/srandmember (随机抽奖)

发表评论

表情:
评论列表 (有 0 条评论,357人围观)

还没有评论,来说两句吧...

相关阅读

    相关 redis--sets类型操作

    sets类型 set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是0(1)。对集合我们可以取并集,交集,差集