redis--sorted sets类型及操作
2016-09-27 14:32
232 查看
sorted sets类型及操作
sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。zadd
向名称为key的zset中添加元素menber,score用于排序。如果元素存在,则更新其顺序值。127.0.0.1:6379> zadd sset1 1 one (integer) 1 127.0.0.1:6379> zadd sset1 2 two (integer) 1 127.0.0.1:6379> zadd sset1 3 two (integer) 0 127.0.0.1:6379> zrange sset1 0 -1 1) "one" 2) "two" 127.0.0.1:6379> zrange sset1 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "3"
注:上例中,0 -1是索引号而不是顺序值,0到-1代表从头取到尾。集合中的元素是唯一的,当再添加同一个值的时候,如果顺序号不一样,则仅更新顺序号。
zrem
删除名称为key的zset中的元素member127.0.0.1:6379> zrange sset1 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "3" 127.0.0.1:6379> zrem sset1 two (integer) 1 127.0.0.1:6379> zrange sset1 0 -1 withscores 1) "one" 2) "1"
zincrby
如果在名称为key的zset中已经存在元素member,则该元素的score增加increment否则向该集合添加该元素,其score的值为increment127.0.0.1:6379> zrange sset1 0 -1 withscores 1) "one" 2) "1" 127.0.0.1:6379> zincrby sset1 2 one "3" 127.0.0.1:6379> zrange sset1 0 -1 withscores 1) "one" 2) "3" 127.0.0.1:6379> zincrby sset1 -2 one "1" 127.0.0.1:6379> zrange sset1 0 -1 withscores 1) "one" 2) "1"
zrank
返回名称为key的zset中member元素的排名(按score从小到大排列)即下标127.0.0.1:6379> zadd sset2 1 one (integer) 1 127.0.0.1:6379> zadd sset2 2 two (integer) 1 127.0.0.1:6379> zadd sset2 3 three (integer) 1 127.0.0.1:6379> zadd sset2 4 four (integer) 1 127.0.0.1:6379> zadd sset2 5 five (integer) 1 127.0.0.1:6379> zrange sset2 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "2" 5) "three" 6) "3" 7) "four" 8) "4" 9) "five" 10) "5" 127.0.0.1:6379> zrank sset2 one (integer) 0 127.0.0.1:6379> zrank sset2 three (integer) 2
即:按元素排名从小到大排列,返回指定元素的下标值,下标从0开始,即第一个是0,第二个是1。
zrevrank
返回名称为key的zset中member元素的排名(按score从大到小排列)即下标127.0.0.1:6379> zrange sset2 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "2" 5) "three" 6) "3" 7) "four" 8) "4" 9) "five" 10) "5" 127.0.0.1:6379> zrevrank sset2 one (integer) 4 127.0.0.1:6379> zrevrank sset2 five (integer) 0
zrevrange
返回名称为key的zset(按score从大到小顺序)中index从start到end的所有元素。127.0.0.1:6379> zrange sset2 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "2" 5) "three" 6) "3" 7) "four" 8) "4" 9) "five" 10) "5" 127.0.0.1:6379> zrevrange sset2 0 -1 withscores 1) "five" 2) "5" 3) "four" 4) "4" 5) "three" 6) "3" 7) "two" 8) "2" 9) "one" 10) "1"
zrangebyscore
返回集合中score在给定区间的元素127.0.0.1:6379> zrange sset2 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "2" 5) "three" 6) "3" 7) "four" 8) "4" 9) "five" 10) "5" 127.0.0.1:6379> zrangebyscore sset2 2 4 withscores 1) "two" 2) "2" 3) "three" 4) "3" 5) "four" 6) "4"
zcount
返回集合中score在给定区间的数量127.0.0.1:6379> zrange sset2 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "2" 5) "three" 6) "3" 7) "four" 8) "4" 9) "five" 10) "5" 127.0.0.1:6379> zcount sset2 2 4 (integer) 3
zcard
返回集合中元素的个数127.0.0.1:6379> zcard sset2 (integer) 5
zremrangebyrank
删除集合中排名在给定区间的元素。按索引值来删除,不是顺序值。
127.0.0.1:6379> zrange sset2 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "2" 5) "three" 6) "3" 7) "four" 8) "4" 9) "five" 10) "5" 127.0.0.1:6379> zremrangebyrank sset2 2 3 (integer) 2 127.0.0.1:6379> zrange sset2 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "2" 5) "five" 6) "5"
zremrangebyscore
删除集合中score在给定区间的元素(即顺序值)127.0.0.1:6379> zrange sset2 0 -1 withscores 1) "one" 2) "1" 3) "two" 4) "2" 5) "five" 6) "5" 127.0.0.1:6379> zremrangebyscore sset2 2 5 (integer) 2 127.0.0.1:6379> zrange sset2 0 -1 withscores 1) "one" 2) "1"
相关文章推荐
- Redis配置文件redis.conf参数解读
- redis第一篇--综述
- 使用 redis list 实现滑动窗口
- Redis Desktop Manager桌面管理工具
- redis 内存优化
- Redis-Redis实战(列表类型)
- centos6.8安装redis-3.2.8,php-redis拓展
- CentOS6.4 安装Redis
- Redis的持久化-RDB和AOF
- redis 常用命令一览表
- redis发布订阅
- Windows下Redis安装与配置
- 安装redis-live监控redis集群
- Redis中-set主要操作函数小结
- Redis核心解读–集群管理工具(Redis-sentinel)
- redis和windows和framework的关联
- Linux下Redis主从复制(master-slave)配置
- Redis3.0.3的安装、测试、服务启动、密码设置
- Redis 3.2.6 Sentinel部署
- redis基本操作命令