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 
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

猜你喜欢

转载自blog.csdn.net/weixin_45228198/article/details/113308687