Redis set集合的解释,一看就会

大家好,今天分享redis set 集合

set(集合)

这是关于它一些解释

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

集合对象的编码可以是 intset 或者 hashtable。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中

最大的成员数为

232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

实操开始:

删除所有数据库信息

127.0.0.1:6379> FLUSHALL
OK

通过 SADD 命令向名为xuexi 的集合插入的三个元素。

127.0.0.1:6379> SADD xuexi linux
(integer) 1
127.0.0.1:6379> SADD xuexi mysql
(integer) 1
127.0.0.1:6379> SADD xuexi redis
(integer) 1
127.0.0.1:6379> SADD xuexi html
(integer) 1

查看这个xuexi这个集合里有什么东西

127.0.0.1:6379> SMEMBERS xuexi
1) "linux"
2) "redis"
3) "mysql"
4) "html"
127.0.0.1:6379> 

判断linux(这个数据是不是xuexi这个集合中的)
(返回1,表示条件成立)

127.0.0.1:6379> SISMEMBER xuexi linux
(integer) 1

php(这个数据就没有)

127.0.0.1:6379> SISMEMBER xuexi php
(integer) 00代表不成立)

再次添加就失败了,因为set 集合当中的数据不可以重复

127.0.0.1:6379> SADD xuexi redis
(integer) 0

获取set集合当中数据的个数

127.0.0.1:6379> SCARD xuexi
(integer) 4

删除linux这个数据

127.0.0.1:6379> SREM xuexi linux
(integer) 1
127.0.0.1:6379> 

查看现在集合当中的数据

127.0.0.1:6379> SMEMBERS xuexi
1) "redis"
2) "mysql"
3) "html"

随即抽取set 集合当中的数据

127.0.0.1:6379> SRANDMEMBER xuexi
"redis"
127.0.0.1:6379> SRANDMEMBER xuexi
"html"
127.0.0.1:6379> SRANDMEMBER xuexi
"html"

也可以指定个数

127.0.0.1:6379> SRANDMEMBER xuexi 2
1) "redis"
2) "mysql"
127.0.0.1:6379> SRANDMEMBER xuexi 2
1) "mysql"
2) "html"
127.0.0.1:6379> SRANDMEMBER xuexi 2
1) "redis"
2) "html"
127.0.0.1:6379> 

查看现在的数据

127.0.0.1:6379> SMEMBERS xuexi
1) "mysql"
2) "html"
3) "redis"
127.0.0.1:6379> 

随即删除数据

127.0.0.1:6379> SPOP xuexi
"mysql"
127.0.0.1:6379> SPOP xuexi
"html"
127.0.0.1:6379> 

指定删除的个数进行删除

127.0.0.1:6379> SPOP xuexi 1
1) "go"
127.0.0.1:6379> SPOP xuexi 2
1) "ja"
2) "css"
127.0.0.1:6379> SPOP xuexi 3
1) "nodejs"
2) "redis"
3) "vue"

新建数据

127.0.0.1:6379> SADD jishu wangluo
(integer) 1
127.0.0.1:6379> SADD jishu czxt
(integer) 1
127.0.0.1:6379> SADD jishu c
(integer) 1
127.0.0.1:6379> SADD jishu c++
(integer) 1
127.0.0.1:6379> SADD jishu js
(integer) 1

创建set 集合,写数据

127.0.0.1:6379> SADD jishi01 redis
(integer) 1

移动数据

127.0.0.1:6379> smove jishu jishu01 "c++"
(integer) 1

原本是jishu的数据被移动到了jishu01

127.0.0.1:6379> SMEMBERS jishu01
1) "c++"

查看集合的数据(c++已经没有了)

127.0.0.1:6379> SMEMBERS jishu
1) "wangluo"
2) "js"
3) "czxt"
4) "c"

创建集合

127.0.0.1:6379> SADD k1 123
(integer) 1
127.0.0.1:6379> SADD k1 456
(integer) 1
127.0.0.1:6379> SADD k1 789
(integer) 1

这个是k1当中的数据

127.0.0.1:6379> SMEMBERS k1
1) "123"
2) "456"
3) "789"
127.0.0.1:6379> SADD k2 789
(integer) 1
127.0.0.1:6379> SADD k2 745
(integer) 1
127.0.0.1:6379> SADD k2 569
(integer) 1

这是k2当中数据

127.0.0.1:6379> SMEMBERS k2
1) "569"
2) "745"
3) "789"

取出这两个集合当中不一样的数据

127.0.0.1:6379> SDIFF k1 k2
1) "123"
2) "456"

取出这两个集合当中一样的数据

127.0.0.1:6379> SINTER k1 k2
1) "789"

这是他俩的并集

127.0.0.1:6379> SUNION k1 k2
1) "123"
2) "456"
3) "569"
4) "745"
5) "789"

好了,有关于Redis set集合的解释就到这里了,谢谢大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思诚代码块

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值