ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
* `zadd key score1 member1 score2 member2`:将一个或多个元素(`member`)及其`score`添加到有序集合`key`中。 * `zscore key member`:返回有序集合`key`中`member`成员的`score`。 * `zincrby key num member`:将有序集合`key`中的`member`加上`num`,`num`可以为负数。 * `zcount key min max`:返回有序集合`key`中`score`值在`[min,max]`区间的`member`数量。 * `zrange key start stop`:返回有序集合`key`中`score`**从小到大排列后**在`[start,stop]`区间的所有`member`。 * `zrevrange key start stop`:返回有序集合`key`中`score`**从大到小排列后**在`[start,stop]`区间的所有`member`。 * `zrangebyscore key min max`:返回有序集合中按`score`从小到大排列后在`[min,max]`区间的所有元素。注意这里**默认是闭区间,但是可以在`max`和`min`的数值前面加上`(`或者`[`来控制开闭区间**。 * `zrevrangebyscore key max min`:返回有序集合中按`score`从大到小排列后在`[min,max]`区间的所有元素。注意这里**默认是闭区间,但是可以在`max`和`min`的数值前面加上`(`或者`[`来控制开闭区间**。 * `zrank key member`:返回有序集合中`member`中元素排名(从小到大),返回的结果从`0`开始计算。 * `zrevrank key member`:返回有序集合中`member`中元素排名(从大到小),返回的结果从`0`开始计算。 * `zlexcount key min max`:返回有序集合中`min`和`max`之间的`member`数量。注意这个命令中的`min`和`max`前面**必须加`(`或者`[`来控制开闭区间**,特殊值`-`和`+`分别表示负无穷和正无穷。 了解了操作有序集合对象的常用命令,我们就可以来验证下前面提到的哈希对象的类型和编码了,在测试之前为了防止其它`key`值的干扰,我们先执行`flushall`命令清空`Redis`数据库。 在执行命令之前,我们先把配置文件中的参数`zset-max-ziplist-entries`修改为`2`: 1. 执行`exit`命令退出当前客户端。 2. 执行`sudo vim /etc/redis/redis.conf`进入编辑器,然后找到下图所示参数`zset-max-ziplist-entries`,将`128`修改为`2`,表示当有序集合对象中的键值对大于`2`时,就会转换为`skiplist`编码进行存储: ![](https://img.kancloud.cn/42/8f/428fd18347b280d6cd863c9f158200e1_607x289.png) 修改之后再重启`Redis`服务,然后重新连接上客户端。 接下来依次执行如下命令: ~~~sql zadd name 1 zs 2 lisi //设置 2 个元素会使用 ziplist type name //查看类型 object encoding name //查看编码 zadd address 1 beijing 2 shanghai 3 guangzhou 4 shenzhen //设置4个元素则会使用 skiplist编码 type address //查看类型 object encoding address //查看编码 ~~~ 得到如下效果: ![](https://img.kancloud.cn/90/ca/90ca072a6169eb1f044613794d16dbec_662x285.png)