Redis有序集合Zset(sorted set)

zadd/zrange

127.0.0.1:6379> zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5
(integer) 5
127.0.0.1:6379> ZRANGE zset01 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0.0.1:6379> ZRANGE zset01 0 -1 withscores
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
9) "v5"
10) "100"
127.0.0.1:6379>

zrangebyscore key 开始score 结束score   (获取一个范围内的)

127.0.0.1:6379> ZRANGEBYSCORE zset01 60 90  (>=60,<=90)
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379>

包含和不包含

127.0.0.1:6379> ZRANGEBYSCORE zset01 60 (90  (>=60,<90)
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379>

127.0.0.1:6379> ZRANGEBYSCORE zset01 (60 (90  (>60,<90)
1) "v2"
2) "v3"
127.0.0.1:6379>

在结果集中在截取

127.0.0.1:6379> ZRANGEBYSCORE zset01 60 90
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> ZRANGEBYSCORE zset01 60 90 limit 2 2
1) "v3"
2) "v4"
127.0.0.1:6379>

zrem key value   (删除一个)

127.0.0.1:6379> zrem zset01 v5
(integer) 1
127.0.0.1:6379> zrange zset01 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379>

zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数

127.0.0.1:6379> zcard zset01  //获取个数
(integer) 4
127.0.0.1:6379>

获取符合范围内的个数

127.0.0.1:6379> ZCOUNT zset01 60 80
(integer) 3
127.0.0.1:6379>

获取对应的下标

127.0.0.1:6379> ZRANK zset01 v4
(integer) 3

获取对应的分数值
127.0.0.1:6379> ZSCORE zset01 v4
"90"
127.0.0.1:6379>

逆序获得下标值

127.0.0.1:6379> ZREVRANK zset01 v4
(integer) 0

逆序打印
127.0.0.1:6379> zrevrange zset01 0 -1
1) "v4"
2) "v3"
3) "v2"
4) "v1"
127.0.0.1:6379>

ZREVRANGEBYSCORE key 结束 开始

127.0.0.1:6379> ZREVRANGEBYSCORE zset01 90 60
1) "v4"
2) "v3"
3) "v2"
4) "v1"
127.0.0.1:6379>

时间: 2024-11-05 20:38:52

Redis有序集合Zset(sorted set)的相关文章

redis 有序集合(zset)函数

redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stored at key. 增加一个或多个元素,如果该元素已经存在,更新它的socre值 虽然有序集合有序,但它也是集合,不能重复元素,添加重复元素只会 更新原有元素的score值 Parameters key score : double value: string Return value Long

【Redis源码剖析】 - Redis数据类型之有序集合zset

原创作品,转载请标明:http://blog.csdn.net/Xiejingfa/article/details/51231967 这周事情比较多,原本计划每周写两篇文章的任务看来是完不成了.今天为大家带来有序集合zset的源码分析. Redis中的zset主要支持以下命令: zadd.zincrby zrem.zremrangebyrank.zremrangebyscore.zremrangebyrank zrange.zrevrange.zrangebyscore.zrevrangebys

Redis 有序集合(sorted set)

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序集合的成员是唯一的,但分数(score)却可以重复. 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1). 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员). 实例 redis 127.0.0.1:6379> ZADD w3ckey 1 r

利用Redis有序集合开发普适的排行榜功能

作者:zhanhailiang 日期:2014-12-02 本文将讲解如何基本Redis Sorted Set实现排行榜功能? 首先,请参见Redis数据类型:http://redis.cn/topics/data-types.html 如上所见,Redis有序集合非常适用于有序不重复数据的存储,例如游戏开发中无处不在的排行榜,如等级排行榜,经验排行榜,积分排行榜,历史筹码排行榜等.如果沿用传统的方法,一般是通过后端的定时任务去跑数据来生成排行榜数据,这种方法一方面无法满足产品对功能实时性的要求

Redis有序集合

Redis有序集合类似Redis集合存储在设定值唯一性.不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关. Redis 有序set添加,删除和测试中的O(1)的存在成员(固定时间,无论里面包含的元素集合的数量).列表的最大长度为232- 1元素(4294967295,超过4十亿每个元素的集合). 例子 redis 127.0.0.1:6379> ZADD tutorials 1 redis (integer) 1 redis 127.0.0.1:63

Redis有序集合Sorted set操作

 Sorted set全部命令如下: zadd key score1 member1 score2 member2 ... # 将一个或多个member元素及其score值加入到有序集合key当中 zcard key # 返回有序集合key中成员的数量 zcount key min max # 返回有序集合key中score值在min和max之间的成员的数量 zincrby key increment member # 为有序集合key的成员member的score值加上增量increment,

python 操作redis有序集合(sorted set)

#coding:utf8 import redis r =redis.Redis(host="23.226.74.190",port=63279,password="66666666666") 1.Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中.如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上.分数值可以是整数值或双精度浮点数.如果有序集合 key 不存在,则创建一个空的有序集并执行

redis 有序集合(set),无需集合(zset)

1.set(无序集合)无序集合每个元素都是string元素的唯一性,不能重复没有修改操作 1.增加 sadd key value1 value2 value3... 2.获取 smembers key 3.删除(删除一个或多个) srem key value value1 value2... 2.zset(有序集合)有序集合每个元素都是string元素的唯一性,不能重复每个元素都关联一个duoble类型的score,表示权重,通过权重将元素从小到大排列没有修改操作1.增加 zadd key sc

Redis有序集合数据类型操作命令

sorted sets类型及操作 sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset(有序集合)会自动重新按新的值调整顺序.可以理解为有两列的mysql表,一列存value,一列存顺序.操作中key理解为zset的名字. zset的方法: zadd:向名称为key的zset中添加元素member,score用于排序.如果该元素存在,则更新其顺序 127.0.0.1:6379> zadd myzset 1 o