目录
Redis 命令网站:redis中文文档
Redis key的命令
命令 | 说明 | 示例 |
keys * | 查看当前库所有的key | keys * |
exists key | 判断某个key是否存在 | exists k1 |
type key | 查看你的key是什么类型 | type k1 |
del key | 删除指定key的数据 | del k3 |
unlink key | 非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中操作 | unlink k2 |
ttl key | 查看还有多少秒过期,-1表示永不过期,-2表示已过期 | ttl k1 |
expire key 秒钟 | 为给定的key设置过期时间 | EXPIRE k1 5 |
move key dbindex 【0-15】 | 将当前数据库的kev移动到给定的数据库db中 | move k2 2 |
select dbindex | 切换数据库【0-15】 默认为 0 | select 2 |
dbsize | 查看当前数据库key的数量 | DBSIZE |
flushdb | 清空当前库 | flushdb |
flushall | 通杀全部库 | flushall |
示例:
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> keys * #查看当前库所有的key
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379> exists k1 #判断某个key是否存在
(integer) 1
127.0.0.1:6379> exists k4
(integer) 0
127.0.0.1:6379> type k1 #查看你的key是什么类型
string
127.0.0.1:6379> del k3 #删除指定key的数据
(integer) 1
127.0.0.1:6379> key *
(error) ERR unknown command 'key', with args beginning with: '*'
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
127.0.0.1:6379> unlink k2 #非阻塞删除
(integer) 1
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> ttl k1 #查看还有多少秒过期
(integer) -1
127.0.0.1:6379> EXPIRE k1 5 #为给定的key设置过期时间
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 3
127.0.0.1:6379> ttl k1
(integer) 1
127.0.0.1:6379> ttl k1
(integer) -2
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> keys *
1) "k2"
2) "k1"
127.0.0.1:6379> move k2 2 #将当前数据库的kev移动到给定的数据库db中
(integer) 1
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> select 2 #切换数据库
OK
127.0.0.1:6379[2]> keys *
1) "k2"
127.0.0.1:6379[2]> select 0
OK
127.0.0.1:6379> DBSIZE #查看当前数据库key的数量
(integer) 1
127.0.0.1:6379> flushdb #清空当前库
OK
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> DBSIZE
(integer) 0
注意:命令不区分大小写,而key是区分大小写的
127.0.0.1:6379> set l hello
OK
127.0.0.1:6379> set L world
OK
127.0.0.1:6379> get l
"hello"
127.0.0.1:6379> get L
"world"
永远的帮助命令,help @类型
Redis 10大数据类型
1、redis字符串(String)
命令 | 描述 |
---|---|
set | 设置指定 key 的值 |
get | 获取指定 key 的值 |
GETRANGE | 获取指定范围的值 |
GETSET | 将给定 key 的值设为 value ,并返回 key 的旧值 ( old value ) |
GETBIT | 对 key 所储存的字符串值,获取指定偏移量上的位 ( bit ) |
MGET | 获取所有(一个或多个)给定 key 的值 |
SETBIT | 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit) |
SETEX | 设置 key 的值为 value 同时将过期时间设为 seconds |
SETNX | 只有在 key 不存在时设置 key 的值 |
SETRANGE | 覆盖原有的值 |
STRLEN | 返回 key 所储存的字符串值的长度 |
MSET | 同时设置一个或多个 key-value 对 |
MSETNX | 同时设置一个或多个 key-value 对 |
PSETEX | 以毫秒为单位设置 key 的生存时间 |
INCR | 将 key 中储存的数字值增一 |
INCRBY | 将 key 所储存的值加上给定的增量值 ( increment ) |
INCRBYFLOAT | 将 key 所储存的值加上给定的浮点增量值 ( increment ) |
DECR | 将 key 中储存的数字值减一 |
DECRBY | 将 key 所储存的值减去给定的减量值 ( decrement ) |
APPEND | 将 value 追加到 key 原来的值的末尾 |
set命令的附加选项
EX seconds:以秒为单位设置过期时间
PX milliseconds:以毫秒为单位设置过期时间
EXAT timestamp:设置以秒为单位的UNIX时间戳所对应的时间为过期时间
PXAT milliseconds-timestamp:设置以毫秒为单位的UNIX时间戳所对应的时间为过期时间NX :键不存在的时候设置键值
XX :键存在的时候设置键值
KEEPTTL:保留设置前指定键的生存时间
GET:返回指定键原本的值,若键不存在时返回nil
字符串(String)应用场景:存储用户会话信息、缓存数据、计数器等。字符串类型是最常用的数据类型,在Redis中可以用于存储任何类型的数据,包括文本、序列化的对象等
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> set k2 v2 ex 3 #以秒为单位设置过期时间
OK
127.0.0.1:6379> ttl k2 #查看过期时间
(integer) -2
127.0.0.1:6379> set k2 v2 ex 3
OK
127.0.0.1:6379> ttl k2
(integer) 2
127.0.0.1:6379> ttl k2
(integer) -2
127.0.0.1:6379> set k2 px 5000
(error) ERR syntax error
127.0.0.1:6379> set k2 v2 px 5000 #以毫秒为单位设置过期时间
OK
127.0.0.1:6379> ttl k2
(integer) 3
127.0.0.1:6379> ttl k2
(integer) 1
127.0.0.1:6379> ttl k2
(integer) -2
127.0.0.1:6379> set k2 v2 nx #键不存在的时候设置键值
OK
127.0.0.1:6379> set k2 v2 nx
(nil)
127.0.0.1:6379> set k2 v3 xx #键存在的时候设置键值
OK
127.0.0.1:6379> set k2 v3 xx
OK
127.0.0.1:6379> get k2
"v3"
127.0.0.1:6379> del k1 k2
(integer) 2
127.0.0.1:6379> set k1 v1 ex 30
OK
127.0.0.1:6379> ttl k1
(integer) 27
127.0.0.1:6379> set k1 x1
OK
127.0.0.1:6379> ttl k1
(integer) -1
127.0.0.1:6379> set k1 v1 ex 30
OK
127.0.0.1:6379> ttl k1
(integer) 28
127.0.0.1:6379> set k1 v1 keepttl #保留设置前指定键的生存时间
OK
127.0.0.1:6379> ttl k1
(integer) 23
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 #同时设置一个或多个 key-value 对
OK
127.0.0.1:6379> mget k1 k2 k3 #获取所有(一个或多个)给定 key 的值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v1 k4 v4 #同时设置一个或多个 key-value 对当k存在时失败
(integer) 0
127.0.0.1:6379> msetnx k4 v4
(integer) 1
127.0.0.1:6379> set k1 123456
OK
127.0.0.1:6379> GETRANGE k1 0 3 #获取指定范围的值
"1234"
127.0.0.1:6379> SETRANGE k1 2 8 #覆盖原有的值
(integer) 6
127.0.0.1:6379> get k1
"128456"
127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> incr k1 #将 key 中储存的数字值增一
(integer) 2
127.0.0.1:6379> incr k1
(integer) 3
127.0.0.1:6379> get k1
"3"
127.0.0.1:6379> incrby k1 2 #将 key 所储存的值加上给定的增量值
(integer) 5
127.0.0.1:6379> get k1
"5"
127.0.0.1:6379> decr k1 #将 key 中储存的数字值减一
(integer) 4
127.0.0.1:6379> decrby k1 2 #将 key 所储存的值减去给定的减量值
(integer) 2
127.0.0.1:6379> set k1 asd
OK
127.0.0.1:6379> STRLEN k1 #返回 key 所储存的字符串值的长度
(integer) 3
127.0.0.1:6379> APPEND k1 asd #追加字符串
(integer) 6
127.0.0.1:6379> get k1
"asdasd"
127.0.0.1:6379> setnx k1 v1 #只有在 key 不存在时设置 key 的值
(integer) 0
127.0.0.1:6379> getset k1 v1 #将给定 key 的值设为 value ,并返回 key 的旧值
"asdasd"
127.0.0.1:6379> get k1
"v1"
2、redis列表(List)
命令 | 描述 |
---|---|
BLPOP | 移出并获取列表的第一个元素 |
BRPOP | 移出并获取列表的最后一个元素 |
BRPOPLPUSH | 从列表中弹出一个值,并将该值插入到另外一个列表中并返回它 |
LINDEX | 通过索引获取列表中的元素 |
LINSERT | 在列表的元素前或者后插入元素 |
LLEN | 获取列表长度 |
LPOP | 移出并获取列表的第一个元素 |
LPUSH | 将一个或多个值插入到列表头部 |
LPUSHX | 将一个值插入到已存在的列表头部 |
LRANGE | 获取列表指定范围内的元素 |
LREM | 移除列表元素 |
LSET | 通过索引设置列表元素的值 |
LTRIM | 对一个列表进行修剪(trim) |
RPOP | 移除并获取列表最后一个元素 |
RPOPLPUSH | 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 |
RPUSH | 在列表中添加一个或多个值 |
RPUSHX | 为已存在的列表添加值 |
列表(List)应用场景:标签标记、唯一值存储、共同好友等。集合类型适合存储不重复的成员,可以进行交集、并集、差集等集合运算
127.0.0.1:6379> lpush list1 1 2 3 4 5 #将一个或多个值插入到列表,从左边添加
(integer) 5
127.0.0.1:6379> RPUSH list2 6 7 8 9 10 #将一个或多个值插入到列表,从右边添加
(integer) 5
127.0.0.1:6379> lrange list1 0 -1 #获取列表指定范围内的元素
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> lrange list2 0 -1
1) "6"
2) "7"
3) "8"
4) "9"
5) "10"
127.0.0.1:6379> lpop list1 #移出并获取列表的第一个元素
"5"
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> rpop list1 #移除并获取列表最后一个元素
"1"
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> lindex list1 0 #通过索引获取列表中的元素
"4"
127.0.0.1:6379> lindex list1 1
"3"
127.0.0.1:6379> llen list1 # #获取列表长度
(integer) 3
127.0.0.1:6379> LPUSH list1 1 1 1 2 2 2 3 3 3
(integer) 12
127.0.0.1:6379> lrange list1 0 -1
1) "3"
2) "3"
3) "3"
4) "2"
5) "2"
6) "2"
7) "1"
8) "1"
9) "1"
10) "4"
11) "3"
12) "2"
127.0.0.1:6379> lrem list1 3 1 #移除列表元素,3移除元素的个数,1要移除的元素
(integer) 3
127.0.0.1:6379> lrange list1 0 -1
1) "3"
2) "3"
3) "3"
4) "2"
5) "2"
6) "2"
7) "4"
8) "3"
9) "2"
127.0.0.1:6379> ltrim list1 5 8 #对一个列表进行修剪,截取值
OK
127.0.0.1:6379> lrange list1 0 -1
1) "2"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379> lrange list2 0 -1
1) "6"
2) "7"
3) "8"
4) "9"
5) "10"
127.0.0.1:6379> rpoplpush list1 list2 #移除列表的最后一个元素并将该元素添加到另一个列表
"2"
127.0.0.1:6379> lrange list1 0 -1
1) "2"
2) "4"
3) "3"
127.0.0.1:6379> lrange list2 0 -1
1) "2"
2) "6"
3) "7"
4) "8"
5) "9"
6) "10"
127.0.0.1:6379> lset list1 0 redis #通过索引设置列表元素的值
OK
127.0.0.1:6379> lrange list1 0 -1
1) "redis"
2) "4"
3) "3"
127.0.0.1:6379> linsert list1 before redis java #在列表的元素前或者后插入元素
(integer) 4
127.0.0.1:6379> lrange list1 0 -1
1) "java"
2) "redis"
3) "4"
4) "3"
3、redis哈希表(Hash)
命令 | 说明 |
---|---|
HDEL | 用于删除哈希表中一个或多个字段 |
HEXISTS | 用于判断哈希表中字段是否存在 |
HGET | 获取存储在哈希表中指定字段的值 |
HGETALL | 获取在哈希表中指定 key 的所有字段和值 |
HINCRBY | 为存储在 key 中的哈希表指定字段做整数增量运算 |
HKEYS | 获取存储在 key 中的哈希表的所有字段 |
HLEN | 获取存储在 key 中的哈希表的字段数量 |
HSET | 用于设置存储在 key 中的哈希表字段的值 |
HVALS | 用于获取哈希表中的所有值 |
哈希表(Hash)应用场景:存储对象属性,比如用户信息、商品信息等。哈希表类型适合存储结构化的数据,可以方便地进行字段级别的读取和更新操作
127.0.0.1:6379> hset user:001 id 1 name zhangsan age 20 #存储在key中的哈希表字段的值
(integer) 3
127.0.0.1:6379> hget user:001 id #获取存储在哈希表中指定字段的值
"1"
127.0.0.1:6379> hget user:001 name
"zhangsan"
127.0.0.1:6379> hmset user:002 id 2 name lisi age 21 ##添加多个值
OK
127.0.0.1:6379> hmget user:001 id name age ##获取多个值
1) "1"
2) "zhangsan"
3) "20"
127.0.0.1:6379> hgetall user:001 #获取在哈希表中指定 key 的所有字段和值
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "age"
6) "20"
127.0.0.1:6379> hdel user:001 age #用于删除哈希表中一个或多个字段
(integer) 1
127.0.0.1:6379> hgetall user:001
1) "id"
2) "1"
3) "name"
4) "zhangsan"
127.0.0.1:6379> hlen user:001 #获取存储在 key 中的哈希表的字段数量
(integer) 2
127.0.0.1:6379> hexists user:001 name #用于判断哈希表中字段是否存在
(integer) 1
127.0.0.1:6379> hkeys user:001 #获取存储在 key 中的哈希表的所有字段
1) "id"
2) "name"
127.0.0.1:6379> hvals user:001 #用于获取哈希表中的所有值
1) "1"
2) "zhangsan"
127.0.0.1:6379> hset user:001 age 20 score 88
(integer) 2
127.0.0.1:6379> hgetall user:001
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "age"
6) "20"
7) "score"
8) "88"
127.0.0.1:6379> hincrby user:001 age 1 #指定字段做整数增量运算
(integer) 21
127.0.0.1:6379> hincrby user:001 age 1
(integer) 22
127.0.0.1:6379> hgetall user:001
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "age"
6) "22"
7) "score"
8) "88"
127.0.0.1:6379> HINCRBYFLOAT user:001 score 0.5 #指定字段做小数增量运算
"88.5"
127.0.0.1:6379> HINCRBYFLOAT user:001 score 0.5
"89"
127.0.0.1:6379> hgetall user:001
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "age"
6) "22"
7) "score"
8) "89"
127.0.0.1:6379> hsetnx user:001 emial 1@qq.com #没有就添加
(integer) 1
127.0.0.1:6379> hsetnx user:001 emial 1@qq.com
(integer) 0
127.0.0.1:6379> hgetall user:001
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "age"
6) "22"
7) "score"
8) "89"
9) "emial"
10) "1@qq.com"
4、redis集合(Set)
命令 | 描述 |
---|---|
SADD | 向集合添加一个或多个成员 |
SCARD | 获取集合的成员数 |
SDIFF | 返回给定所有集合的差集 |
SDIFFSTORE | 返回给定所有集合的差集并存储在 destination 中 |
SINTER | 返回给定所有集合的交集 |
SINTERSTORE | 返回给定所有集合的交集并存储在 destination 中 |
SISMEMBER | 判断 member 元素是否是集合 key 的成员 |
SMEMBERS | 返回集合中的所有成员 |
SMOVE | 将 member 元素从 source 集合移动到 destination 集合 |
SPOP | 移除并返回集合中的一个随机元素 |
SRANDMEMBER | 返回集合中一个或多个随机数 |
SREM | 移除集合中一个或多个成员 |
SUNION | 返回所有给定集合的并集 |
SUNIONSTORE | 所有给定集合的并集存储在 destination 集合中 |
SSCAN | 迭代集合中的元素 |
SINTERCARD | redis7新命令 它不返回结果集,而只返回结果的基数。 返回由所有给定集合的交集产生的集合的基数 |
集合(Set)应用场景:标签标记、唯一值存储、共同好友等。集合类型适合存储不重复的成员,可以进行交集、并集、差集等集合运算
127.0.0.1:6379> sadd set1 1 1 1 2 2 2 3 3 4 5 #向集合添加一个或多个成员
(integer) 5
127.0.0.1:6379> SMEMBERS set1 #返回集合中的所有成员
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> SISMEMBER set1 x #判断 member 元素是否是集合 key 的成员
(integer) 0
127.0.0.1:6379> SISMEMBER set1 1
(integer) 1
127.0.0.1:6379> SISMEMBER set1 5
(integer) 1
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> srem set1 1 #返回集合中一个或多个随机数
(integer) 1
127.0.0.1:6379> SMEMBERS set1
1) "2"
2) "3"
3) "4"
4) "5"
127.0.0.1:6379> srem set1 5
(integer) 1
127.0.0.1:6379> SMEMBERS set1
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> scard set1 #获取集合的成员数
(integer) 3
127.0.0.1:6379> SRANDMEMBER set1 3 #返回集合中一个或多个随机数
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> SMEMBERS set1
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> spop set1 1 #移除并返回集合中的一个随机元素
1) "4"
127.0.0.1:6379> SMEMBERS set1
1) "2"
2) "3"
127.0.0.1:6379> sadd set2 a b c
(integer) 3
127.0.0.1:6379> smove set1 set2 2 #将 member 元素从A集合移动到B 集合
(integer) 1
127.0.0.1:6379> SMEMBERS set1
1) "3"
127.0.0.1:6379> SMEMBERS set2
1) "2"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> del set1
(integer) 1
127.0.0.1:6379> del set2
(integer) 1
127.0.0.1:6379> sadd set1 1 2 3 a b c
(integer) 6
127.0.0.1:6379> sadd set2 3 4 5 c d e
(integer) 6
127.0.0.1:6379> sdiff set1 set2 #返回给定所有集合的差集
1) "1"
2) "b"
3) "2"
4) "a"
127.0.0.1:6379> sdiff set2 set1
1) "d"
2) "e"
3) "5"
4) "4"
127.0.0.1:6379> sunion set1 set2 #返回给定所有集合的并集
1) "1"
2) "2"
3) "c"
4) "a"
5) "b"
6) "d"
7) "4"
8) "e"
9) "3"
10) "5"
127.0.0.1:6379> sinter set1 set2 #返回给定所有集合的交集
1) "3"
2) "c"
127.0.0.1:6379> SINTERCARD 2 set1 set2
(integer) 2
127.0.0.1:6379> SINTERCARD 2 set1 set2 limit 1
(integer) 1
127.0.0.1:6379> SINTERCARD 2 set1 set2 limit 2
(integer) 2
127.0.0.1:6379> SINTERCARD 2 set1 set2 limit 3
(integer) 2
5、redis有序集合(ZSet)
命令 | 描述 |
---|---|
ZADD | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
ZCARD | 获取有序集合的成员数 |
ZCOUNT | 计算在有序集合中指定区间分数的成员数 |
ZINCRBY | 有序集合中对指定成员的分数加上增量 increment |
ZINTERSTORE | 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中 |
ZLEXCOUNT | 在有序集合中计算指定字典区间内成员数量 |
ZRANGE | 通过索引区间返回有序集合成指定区间内的成员 |
ZRANGEBYLEX | 通过字典区间返回有序集合的成员 |
ZRANGEBYSCORE | 通过分数返回有序集合指定区间内的成员 |
ZRANK | 返回有序集合中指定成员的索引 |
ZREM | 移除有序集合中的一个或多个成员 |
ZREMRANGEBYLEX | 移除有序集合中给定的字典区间的所有成员 |
ZREMRANGEBYRANK | 移除有序集合中给定的排名区间的所有成员 |
ZREMRANGEBYSCORE | 移除有序集合中给定的分数区间的所有成员 |
ZREVRANGE | 返回有序集中指定区间内的成员,通过索引,分数从高到底 |
ZREVRANGEBYSCORE | 返回有序集中指定分数区间内的成员,分数从高到低排序 |
ZREVRANK | 作用是逆序获得下标值 |
ZSCORE | 返回有序集中,成员的分数值 |
ZUNIONSTORE | 计算一个或多个有序集的并集,并存储在新的 key 中 |
ZSCAN | 迭代有序集合中的元素(包括元素成员和元素分值) |
zmpop | 从键名列表中的第一个非空排序集中弹出一个或多个元素,它们是成员分数对 |
有序集合(Sorted Set)应用场景:排行榜、优先级队列等需要有序性的场景。有序集合类型可以存储成员及其对应的分数(score),并根据分数进行排序和范围查询
127.0.0.1:6379> zadd zset1 60 v1 70 v2 80 v3 90 v4 100 v5 #向有序集合添加一个或多个成员
(integer) 5
127.0.0.1:6379> zrange zset1 0 -1 #通过索引区间返回有序集合成指定区间内的成员
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0.0.1:6379> zrange zset1 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> ZREVRANGE zset1 0 -1 withscores #返回集合,分数从高到底
1) "v5"
2) "100"
3) "v4"
4) "90"
5) "v3"
6) "80"
7) "v2"
8) "70"
9) "v1"
10) "60"
127.0.0.1:6379> zrangebyscore zset1 60 90 #通过分数返回有序集合指定区间内的成员
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> zrangebyscore zset1 60 90 withscores
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
127.0.0.1:6379> zscore zset1 v5 #返回有序集中,成员的分数值
"100"
127.0.0.1:6379> zscore zset1 v4
"90"
127.0.0.1:6379> zcard zset1 #获取有序集合的成员数
(integer) 5
127.0.0.1:6379> zrem zset1 v5 #移除有序集合中的一个或多个成员
(integer) 1
127.0.0.1:6379> zrem zset1 v5
(integer) 0
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
127.0.0.1:6379> ZINCRBY zset1 5 v1 #有序集合中对指定成员的分数加上增量
"65"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "v1"
2) "65"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
127.0.0.1:6379> zmpop 1 zset1 min count 1 #从键名列表中的第一个非空排序集中弹出一个
1) "zset1"
2) 1) 1) "v1"
2) "65"
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "v2"
2) "70"
3) "v3"
4) "80"
5) "v4"
6) "90"
127.0.0.1:6379> zrange zset1 0 -1
1) "v2"
2) "v3"
3) "v4"
127.0.0.1:6379> zrank zset1 v2 #返回有序集合中指定成员的索引
(integer) 0
127.0.0.1:6379> zrank zset1 v3
(integer) 1
127.0.0.1:6379> zrevrank zset1 v3 #作用是逆序获得下标值
(integer) 1
127.0.0.1:6379> zrevrank zset1 v4
(integer) 0
127.0.0.1:6379> zcount zset1 70 80 #计算在有序集合中指定区间分数的成员数
(integer) 2