ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[info] Zset 常用命令 Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。 [TOC] #### **添加:zadd zset number value** ``` zadd zset 1 redis # 添加多个 zadd zset 2 "world" 3 "bar" ``` ![](https://img.kancloud.cn/94/91/94915aa94293eb92e634b7adb0f7c707_283x130.png) ***** #### **增长分数:zincrby zset number value** ``` zincrby zset 10 redis` ``` ![](https://img.kancloud.cn/1a/c2/1ac29b914fd471347dea962c262c15bf_312x63.png) ***** #### **获取分数:zscore zset value** ``` zscore zset redis ``` ![](https://img.kancloud.cn/d5/c2/d5c2f285242e305c8b4c277e9242811c_285x66.png) ***** #### **通过索引取值(从低到高):zrange zset star stop [withscores]** 通过索引区间返回有序集合指定区间内的成员,从低到高。 ``` # 显示整个有序集成员 zrange zset 0 -1 withscores ``` ![](https://img.kancloud.cn/97/7a/977aca44bc953aeab7de7e76eff61df7_390x124.png) ***** #### **统计元素数量:zcard zset** ``` zcard zset ``` ![](https://img.kancloud.cn/7b/0a/7b0a2dadc4135e77dadceaa2c2572b50_233x56.png) ***** #### **统计分数区间内元素数量:zcount zset min max** ``` # 统计分数在 12 - 15 之间的总数 zount zset 12 15 ``` ![](https://img.kancloud.cn/c7/2b/c72b746633dd1f910373199aadf4e8db_290x70.png) ***** #### **删除1个或多个元素:zrem zset member** ``` # 移除 yuwen 这个元素 zrem zset yuwen # 移除多个元素 zrem zset yuwen lishi yinyu # 按照排名范围删除元素 zremrangebyrank zset 0 1 # 按照分数范围删除元素 zremrangebyscore zset 0 1 ``` ![](https://img.kancloud.cn/89/ea/89ea55ce4abd111b6e64a744f2825465_384x205.png) ***** #### **分数最小的元素排名:zrank zset nember** zrank 返回有序集中指定成员的排名。其中有序集成员按分数值递增(从小到大)顺序排列。**0 最小** ``` zrank zset dili ``` ![](https://img.kancloud.cn/c1/cb/c1cb74f6ff8805fea3404d5186324c1c_416x298.png) ***** #### **分数最大的元素排名:zrank zset nember** zrevrank 命令返回有序集中成员的排名。其中有序集成员按分数值递减(从大到小)排序。**0 最大** ~~~ # 查询 yinyu 当前排名 zrevrank zset yinyu ~~~ ![](https://img.kancloud.cn/da/42/da42ef4d2c67cea96820d1c4566c7412_423x205.png) ***** #### **指定范围值(从低到高):zrangebyscore zset 开始分数 最后分数 withscores** 通过分数返回有序集合指定区间内的成员 ``` # 获取 20 - 21 之间的分数 zrangebyscore zset 20 21 withscores # 获取分页 zrangebyscore zset 20 21 withscores limit 1 2 # 显示整个有序集 zrangebyscore salary -inf +inf 1) "jack" 2) "tom" 3) "peter" # 显示工资 <=5000 的所有成员 zrangebyscore salary -inf 5000 withscores 2) "2500" 3) "tom" 4) "5000" # 显示工资大于 5000 小于等于 400000 的成员 zrangebyscore salary (5000 400000 1) "peter" ``` ![](https://img.kancloud.cn/31/48/314876c188895b713144ea07d1dde05e_396x109.png) ***** #### **通过索引取值(从高到低):zrevrange zset start stop [withscores]** 返回有序集中指定区间内的成员,通过索引,分数从高到低。 ``` zrevrange zset 0 3 withscores ``` ![](https://img.kancloud.cn/b9/82/b982ff6ecf8f050ea2a800acce0c1579_424x176.png) ***** #### **指定范围值(从高到低):zervrangebyscore zset 开始分数 最后分数 [withscores]** ``` zrevrangebyscore zset 20 15 withscores ``` ![](https://img.kancloud.cn/b8/a5/b8a5d3a7f3a445f3800e2e91c797b46e_469x184.png) *****