redis基本类型和使用方法详解

2020-02-07 18:01:47王振洲

用途

    唯一性数据集合,如某用户访问了哪些店铺等。 集合相关场景。每个店铺的访问用户是一个set,查找同时访问多个店铺的用户群,查找访问一类店铺的用户群等。

sorted set

有序集合为每一个元素关联一个分数,并按照分数进行排序。 虽然集合中的每个元素都是不相同的,但是它们的分数却可以相同。

ZADD key score member [score member ... ] 添加新元素,如果元素已经存在,则更新分数。score支持整型和双精度浮点型。返回新添加的元素的个数(更新分数的不算)。inf和-inf分别表示正无穷和负无穷。

ZINCRBY key increment member 增加一个元素的分数,increment可以是负数。

ZSCORE key member 查询元素的分数

ZCARD key 获取集合中元素的个数

ZCOUNT key min max 指定分数范围内元素的个数,支持开闭区间。

ZRANGE key start end [WITHSCORES] 按照分数从小到大排序,获取排名在某个范围的元素列表,分数可选。闭区间,end可为负数,与lrange参数要求一致。

ZREVRANGE key start end [WITHSCORES] 按照分数从大到小排序。

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count ] 按分数从小到大顺序,返回分数在闭区间[min,max]的元素。可以指定开区间,在min前面加上"(",则表示(min, max]。支持inf和-inf。 offset和count指,在获得的元素列表的基础上,向后偏移offset个元素,并且只获取前count个元素。

ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count ] 按分数从大到小顺序,返回分数在闭区间[min,max]的元素。注意max和min的参数位置。

ZREM key member [member ... ] 删除一个或者多个元素

ZREMRANGEBYRANK key start end 按照范围排名删除元素,闭区间。索引从0开始。

ZREMRANGEBYSCORE key min max 按照分数排名,删除分数在[min,max]的元素,支持开区间。

ZRANK key member 按分数从小到大排序,获取元素member的排名,分数最小的排名是0

ZREVRANK key member 按分数从大到小排序,获取元素member的排名,分数最大的排名是0

ZINTERSTORE destination numkeys key [key ... ] [WEIGHTS weight [weight ... ]] [AGGREGATE SUM|MIN|MAX] 计算numkeys个有序集合的交集,存储在有序集合destination里面,返回destination的元素个数。

WEIGHTS参数设置每个集合的权重,每个集合在参与计算时,元素的分数会被乘上该集合的权重。

AGGREGATE表示destination中元素分数的计算方式:

AGGREGATE为SUM(默认值)时,则destination中元素的分数,是每个参与计算的集合中该元素分数的和。

AGGREGATE为MAX时,则destination中元素的分数,是每个参与计算的集合中该元素分数的最大值。

AGGREGATE为MIN时,则destination中元素的分数,是每个参与计算的集合中该元素分数的最小值。