Redis数据类型之集合

数据形式

k e y − − > { v a l u e 1 , v a l u e 2 , . . . } key-->\{value1,value2,...\} key>{value1,value2,...}

  1. 集合是无序的,去重的容器数据结构
  2. 值只能为字符串,最多 2 32 − 1 2^{32}-1 2321

常用命令

  1. 添加元素
sadd  s1 tom jack lili 
sadd  s1 tom tom 
#添加成功返回1
#失败返回0
python添加元素
r.sadd("s1","tom","jack","lili",5) #必须是一个一个的值
  1. 获取集合所有元素
smembers  s1
"tom"
"jack"
"lili"
python获取redis集合中所有元素,返回一个集合
r.smembers("s1")
返回{b"tom",b"jack",b"lili",b"5"}
  1. 删除集合中的tom
srem  s1 tom 
python删除集合中tom
r.srem("s1","tom")
  1. 统计成员总数
scard  s1
python统计成员总数,返回 int
r.scard("s1")
  1. 判断jack是否在集合中
sismember s1 jack
python判断jack是否在集合中
r.sismember("s1","jack")
返回True/False
  1. 随机抽取元素
#随机抽取一个元素,总元素数不变
srandmember s1 1
#随机抽取两个元素
srandmember s1 2
python随机抽取元素
r.srandmember("s1",1)
r.srandmember("s1",2)
均返回列表
  1. 随机弹出元素
#随机弹出一个元素
spop s1 1
#随机弹出两个元素
spop s1 2
python随机弹出元素
r.spop("s1",1)   
r.spop("s1",2)
返回列表
  1. 从集合s1中移出一个元素放入s2
#随机弹出一个元素
smove s1 s2 jack
python从集合s1中移出一个元素放入s2
r.smove("s1","s2","jack")
返回True/False
  1. 差集
#s1-s2
sdiff s1 s2
sdiffstore destination s1 s2
python
r.sdiff("s1","s2")
返回集合

10.交集、并集

#交集
sinter s1 s2
sinterstore destination s1 s2
#并集
sunion s1 s2
sunionstore destination s1 s2
python
r.sinter("s1","s2")
返回集合
r.sinterstore("destination","s1","s2")

集合应用场景

  1. 社交平台共同好友,取交集
  2. 随机抽奖
  3. 元素去重
  4. 黑白名单
    需要注意的是,当插入集合元素时,若全部为int(集合内转为字符串),此时集合采用列表结构,否则采用哈希结构
    查看结构:object encoding key
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

laufing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值