python-redis集合模式
无序集合SADD
set集合是直接去重的,只会输出 xiao hehe
sadd names3 xiao xiao hehe hehe
获取集合 names3的所有值,集合不能用切片形式获取值,因为是无序的
SMEMBERS names3
获取names3对应的集合中元素个数
SCARD names3
两个集合的差集:
sdiff names3 names4
两个集合的差集并且得到的结果赋值给新集合n6:
SDIFFSTORE n6 names3 names4
交集:
SINTER names3 names4
判断names3里面是否有hehe元素:
SISMEMBER names3 hehe
从一个集合移动到另一个集合:
smove(src, dst, value)
# 将某个成员从一个集合中移动到另外一个集合
随机获取一个集合里面的元素:
SRANDMEMBER names3
#从name对应的集合中随机获取 numbers 个元素
srandmember
#在name对应的集合中删除某些值
srem names3 hehe
并集:
SUNION names3 names4
# 获取多一个name对应的集合的并集,并将结果保存到dest对应的集合中
sunionstore(dest,keys, *args)
集合names3,names4的并集结果,存放到集合n7中,再用sscan查看
有序集合:ZADD
添加集合 z1:
ZADD z1 10 xiaopang 5 jack 8 rain 4 jane #可以改数字,值不可以更改
获取集合z1的值(有序的都用range获取)
ZRANGE z1 0 -1 WITHSCORES(显示数字)
集合里元素分数区间:
ZCOUNT z1 4 10(4 10是 min max)
# 自增name对应的有序集合的 name 对应的分数
zincrby(name, value, amount)
# 获取某个值在 name对应的有序集合中的排行(从 0 开始)
ZRANK z1 xiaopang
# 根据排行范围删除
zremrangebyrank(name, min, max)
根据name值获取分数:
ZSCORE z1 xiaopang
两个集合之间取交集,并且赋值给新的集合:
ZINTERSTORE z3 2 z1 z2 #2是代表有两个集合的交集
删除key,并且设置超时时间:
expire(name ,time)