Redis系列-set类型和zset类型

11 篇文章 0 订阅

set类型 

Set是集合,它是string类型的无序集合。

set是通过hash table 实现的,添加、删除和查找的复杂度都是0(1)。

对集合我们可以取并集、交集、差集。

sadd 向名称为key的set中添加元素

sadd myset "hello"

smembers  查看集合

smembers myset

srem 删除元素

srem myset "one" 返回1 删除成功 返回0 删除失败



spop 随机返回并删除名称为key的set中的一个元素 

spop myset


sdiff 返回所有给定key与第一个key的差集 

sdiff myset1 myset2 (以前面一个为标准)



sdiffstore 返回所有给定key与第一个key的差集,并将结果存为另外一个key. 

sdiffstore myset3 myset1 myset2   # 将 myset1 myset2 的差集存到myset3里面(以myset1为基准)



sinter 返回给定key的交集 

sinter myset4 myset5



sinterstore 将交集存储到另外一个集合 sinterstore myset6 myset1 myset2  (与sdiffstore类似)


sunion 并集 

sunion myset1 myset2 

sunionstore 取并集存到新的set 

sunionstore myset7 myset1 myset2 #返回插入的元素个数



smove 从第一个key对应的set中移除member并添加到第二个对应的set中 

smove myset2 myset7 three #成功返回1 失败返回0



scard 查看集合的个数 scard myset2


sismember 测试member是否是名称为key的set的元素 

sismember myset2 two 是返回1 不是返回0


srandmember 随机返回 (因为set无序)

srandmember myset7


sorted sets 类型 

sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,

每次指定后,zset会自动重新按新的值调整顺序,可以理解为由两列的mysql,一列存value,一列存顺序。

其中key理解为zset的名字.

zadd 添加元素 

zadd myzset 1 "one" 

zadd myzset 2 "two" 

zadd myzset 3 "three" 

zrange myzset 0 -1 withscores 

这里的0和-1代表的是索引 withscores 输出顺序号



zrem 删除名称为key的zset中的元素 

zrem myzset two


zincrby 以指定值来增加(减少)顺序 对数序号进行加减 

如果在名称为key的zset中,已经存在元素member,则该元素的sroce增加increment,

否则向该集合添加元素,其score的值为incrnment

zincrby myzset 2 one 


再比如 four这个元素是不存在的



zrank 返回名称为key的zset中的member元素的排名 (按score从小到大排序) 即下标 

zrank myzset two



zrevrank 反转 按照score从大到小排名 zrevrank myzset two


zrevrange 逆序 降序排序 

zrevrange myzset 0 -1 withscores



zrangebyscore 返回下标在给定区间的元素 

zrangebyscore myzset 2 3 withscore


zcount 返回集合中score在给定区间中的数量 

zcount myzset 2 3


zcard 返回集合中所有元素的个数 

zcard myzset


zremrangebyrank删除集合中在给定区间的元素 按照下标删除 

zremrangebyrank myzset 1 2

zremrangebyscore删除集合中给定区间的元素 按照顺序删除 

zremrangebyscore myzset 1 2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值