redis中Set数据类型最全常用命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38111957/article/details/82502303

一、引言

不得不说,又到周末了,先说说这周到情况。拿到需求一脸懵逼,上线时间还很近,之前同事写的逻辑还特别复杂。说真的,遇到这种情况小编真的有想法不想干了。那难道辞职? 没办法,周末加个班吧,谁叫我们是程序猿呢?小编也希望其他小伙伴遇到事冷静点,想办法解决就好了,是自己的事终究还得自己解决 心塞~~~~~。

那我们今天继续来讲redis数据类型操作命令吧。 

Set是集合,他是String类型的无序集合,set是通过hash table来实现新增、删除、查找的。set集合支持查找集合中的差集、交集、并集。

不了解差集、交集、并集的童鞋可以浏览一下:  

https://www.zybang.com/question/bcc41b12789c186c2b9aa3a7e0f400b3.html

二、set数据类型常用命令

sadd:往set集合中添加元素,不能添加重复数据

127.0.0.1:6379> sadd book mathsbook
           (integer) 1
           127.0.0.1:6379> sadd book chinsesbook
           (integer) 1
           127.0.0.1:6379> 

smembers:查看set集合中的元素

127.0.0.1:6379> smembers book
           1) "chinsesbook"
           2) "mathsbook"
           127.0.0.1:6379> 

srem:删除set集合中元素

127.0.0.1:6379> srem book mathsbook
           (integer) 1
           127.0.0.1:6379> smembers book
           1) "chinsesbook"
           127.0.0.1:6379> 

spop:随机删除set集合中元素,返回删除元素值

127.0.0.1:6379> smembers book
           1) "chinsesbook"
           2) "englishbook"
           3) "mathsbook"
           4) "stroybook"
           127.0.0.1:6379> spop book
           "chinsesbook"
           127.0.0.1:6379> spop book
           "stroybook"
           127.0.0.1:6379> smembers book
           1) "englishbook"
           2) "mathsbook"
           127.0.0.1:6379> 

sdiff:取两个set集合的差集,以第一个集合为准,取差集。

127.0.0.1:6379> smembers book
           1) "englishbook"
           2) "mathsbook"
           127.0.0.1:6379> smembers booktwo
           1) "mathsbook"
           2) "storybook"
           127.0.0.1:6379> sdiff book booktwo
           1) "englishbook"
           127.0.0.1:6379> sdiff booktwo book
           1) "storybook"
           127.0.0.1:6379> 

sdiffstore:取两个set集合的差集,并存储到另一个set集合中

127.0.0.1:6379> smembers book
           1) "mathsbook"
           2) "storybook"
           127.0.0.1:6379> smembers booktwo
           1) "chinsesbook"
           2) "mathsbook"
          127.0.0.1:6379> sdiffstore rebooks book booktwo
          (integer) 1
          127.0.0.1:6379> smembers rebooks
          1) "storybook"
          127.0.0.1:6379> 

sinter:取两个set集合的交集,同理sinterstore则是把返回交集的结果,存储到另一个set集合中

127.0.0.1:6379> smembers book
           1) "mathsbook"
           2) "storybook"
           127.0.0.1:6379> smembers booktwo
           1) "chinsesbook"
           2) "mathsbook"
           127.0.0.1:6379> sinter book booktwo
           1) "mathsbook"
           127.0.0.1:6379> 

sunion:取出两个set集合的并集,同理sunionstore则是把返回交集的结果,存储到另一个set集合中

127.0.0.1:6379> smembers book
           1) "mathsbook"
           2) "storybook"
          127.0.0.1:6379> smembers booktwo
          1) "chinsesbook"
           2) "mathsbook"
          127.0.0.1:6379> sunion book booktwo
          1) "chinsesbook"
          2) "mathsbook"
          3) "storybook"
          127.0.0.1:6379> 

smove:从第一个set集中的元素,移动到第二个set集合中

127.0.0.1:6379> smembers book
           1) "mathsbook"
           2) "storybook"
           127.0.0.1:6379> smembers booktwo
           1) "chinsesbook"
           2) "mathsbook"
          127.0.0.1:6379> smove book booktwo storybook
          (integer) 1
          127.0.0.1:6379> smembers booktwo
          1) "chinsesbook"
          2) "mathsbook"
          3) "storybook"
         127.0.0.1:6379> 

scard:查看set集中的元素个数,返回个数

127.0.0.1:6379> smembers book
           1) "mathsbook"
           127.0.0.1:6379> scard book
           (integer) 1
           127.0.0.1:6379> 

sismember:判断该元素,是否存在该set集合中,如果存在返回1,不存在返回0

127.0.0.1:6379> smembers book
           1) "mathsbook"
           127.0.0.1:6379> sismember book mathsbook
           (integer) 1
          127.0.0.1:6379> sismember book chinsesbook
          (integer) 0
          127.0.0.1:6379> 

srandmember:随即返回集合中的某个元素,但是不删除元素

127.0.0.1:6379> srandmember booktwo
           "mathsbook"
           127.0.0.1:6379> srandmember booktwo
           "chinsesbook"
           127.0.0.1:6379> 

猜你喜欢

转载自blog.csdn.net/weixin_38111957/article/details/82502303