一、通用命令

通用命令是指所有数据类型都能使用的命令,常见的有:

  • KEYS:通过通配符进行模糊查询所有符合条件的 key;
  • DEL:删除指定的 key;
  • TTL:查看指定 key 的剩余有效期;
  • EXPIRE:给指定的 key 设置有效期,有效期到期时该 key 会被自动删除;
  • EXISTS:判断指定的 key 是否存在;

1、KEYS 命令

通过通配符进行模糊查询 key

  1. 127.0.0.1:6379> MSET firstname jack lastname steven age 24
  2. OK
  3. 127.0.0.1:6379> KEYS *
  4. 1) "lastname"
  5. 2) "age"
  6. 3) "firstname"
  7. 127.0.0.1:6379> KEYS *name*
  8. 1) "lastname"
  9. 2) "firstname"
  10. 127.0.0.1:6379> KEYS a??
  11. 1) "age"
  12. 127.0.0.1:6379>

2、DEL 命令

删除指定的 key

  1. 127.0.0.1:6379> MSET key1 value1 key2 value2 key3 value3
  2. OK
  3. 127.0.0.1:6379> KEYS *
  4. 1) "key1"
  5. 2) "key3"
  6. 3) "key2"
  7. 127.0.0.1:6379> DEL key3
  8. (integer) 1
  9. 127.0.0.1:6379> KEYS *
  10. 1) "key1"
  11. 2) "key2"
  12. 127.0.0.1:6379> DEL key1 key2 key3
  13. (integer) 2
  14. 127.0.0.1:6379> KEYS *
  15. (empty array)
  16. 127.0.0.1:6379>

3、TTL 命令

查看指定 key 的剩余有效期

  1. 127.0.0.1:6379> SET key1 value1
  2. OK
  3. 127.0.0.1:6379> TTL key1
  4. (integer) -1 # 代表永不过期
  5. 127.0.0.1:6379> EXPIRE key1 10
  6. (integer) 1
  7. 127.0.0.1:6379> ttl key1
  8. (integer) 10 # 代表 key 的剩余有效期,单位是 second
  9. 127.0.0.1:6379> ttl key1
  10. (integer) -2 # 代表已经过期
  11. 127.0.0.1:6379>

4、EXPIRE 命令

给指定的 key 设置有效期,有效期到期时该 key 会被自动删除

  1. 127.0.0.1:6379> SET key1 value
  2. OK
  3. 127.0.0.1:6379> TTL key1
  4. (integer) -1 # 代表永不过期
  5. 127.0.0.1:6379> EXPIRE key1 10
  6. (integer) 1
  7. 127.0.0.1:6379> TTL key1
  8. (integer) 10 # 代表 key 的剩余有效期,单位是 second
  9. 127.0.0.1:6379> TTL key1
  10. (integer) -2 # 代表已经过期
  11. 127.0.0.1:6379> KEYS *
  12. (empty array) # 由于 key1 已经过期了,所以查询不到
  13. 127.0.0.1:6379> GET key1
  14. (nil) # 由于 key1 已经过期了,所以获取不到
  15. 127.0.0.1:6379> TTL key1
  16. (integer) -2 # 但是通过 TTL 是能查询 key1 的状态
  17. 127.0.0.1:6379>

5、EXISTS 命令

判断指定的 key 是否存在

  1. 127.0.0.1:6379> EXISTS key1
  2. (integer) 0 # 不存在返回 0
  3. 127.0.0.1:6379> SET key1 value1
  4. OK
  5. 127.0.0.1:6379> EXISTS key1
  6. (integer) 1 # 若存在返回 1
  7. 127.0.0.1:6379> EXPIRE key1 10
  8. (integer) 1
  9. 127.0.0.1:6379> TTL key1
  10. (integer) -2
  11. 127.0.0.1:6379> EXISTS key1
  12. (integer) 0 # 已经过期,则返回 0
  13. 127.0.0.1:6379>

二、String 常用命令

String 类型,也就是字符串类型,是 Redis 中最简单的存储类型。

根据字符串的格式不同,又可以分为3类:

  • String:普通字符串;
  • int:整数类型,可以做自增、自减操作;
  • float:浮点类型,可以做自增、自减操作;

不管是哪种格式,底层都是字节数组形式存储,只不过是编码方式不同。

字符串类型的最大空间不能超过 512M。

String 的常见命令如下:

  • SET key value:添加或者修改一个 String 类型的键值对;
  • GET key:根据 key 获取 String 类型的 value;
  • MSET key1 value1 key2 value2:批量添加多个 String 类型的键值对;
  • MGET key1 key2:根据多个 key 获取多个 String 类型的 value;
  • SETNX key value:添加一个 String 类型的键值对,前提是这个 key 不存在,否则不执行;
  • SETEX key seconds value:添加一个 String类 型的键值对,并且指定有效期;
  • INCR key:让一个 int 型的 key 自增 1;
  • INCRBY key increment:让一个 int 型的 key 自增并指定步长;
  • INCRBYFLOAT key increment:让一个 float 型的数字自增并指定步长;

1、SET 命令

添加或者修改一个 String 类型的键值对

  1. 127.0.0.1:6379> SET key1 value1
  2. OK
  3. 127.0.0.1:6379> KEYS *
  4. 1) "key1"
  5. 127.0.0.1:6379>

2、GET 命令

根据 key 获取 String 类型的 value

  1. 127.0.0.1:6379> SET key1 value1
  2. OK
  3. 127.0.0.1:6379> GET key1
  4. "value1"
  5. 127.0.0.1:6379>

3、MSET 命令

批量添加多个 String 类型的键值对

  1. 127.0.0.1:6379> MSET key1 value1 key2 value2
  2. OK
  3. 127.0.0.1:6379> KEYS *
  4. 1) "key1"
  5. 2) "key2"
  6. 127.0.0.1:6379>

4、GSET 命令

根据多个 key 获取多个 String 类型的 value

  1. 127.0.0.1:6379> MSET key1 value1 key2 value2
  2. OK
  3. 127.0.0.1:6379> KEYS *
  4. 1) "key1"
  5. 2) "key2"
  6. 127.0.0.1:6379> MGET key1 key2
  7. 1) "value1"
  8. 2) "value2"
  9. 127.0.0.1:6379>

5、SETNX 命令

添加一个 String 类型的键值对,前提是这个 key 不存在,否则不执行

  1. 127.0.0.1:6379> KEYS *
  2. (empty array)
  3. 127.0.0.1:6379> SETNX key1 value1
  4. (integer) 1
  5. 127.0.0.1:6379> SETNX key1 value1
  6. (integer) 0
  7. 127.0.0.1:6379>

6、SETEX 命令

添加一个 String类 型的键值对,并且指定有效期

  1. 127.0.0.1:6379> SETEX key1 10 value1
  2. OK
  3. 127.0.0.1:6379> TTL key1
  4. (integer) 10
  5. 127.0.0.1:6379> TTL key1
  6. (integer) -2
  7. 127.0.0.1:6379>

7、lNCR 命令

让一个 int 型的 key 自增 1

  1. 127.0.0.1:6379> MSET key1 10 key2 10.1 key3 hello
  2. OK
  3. 127.0.0.1:6379> mget key1 key2 key3
  4. 1) "10"
  5. 2) "10.1"
  6. 3) "hello"
  7. 127.0.0.1:6379> INCR key1
  8. (integer) 11
  9. 127.0.0.1:6379> INCR key2
  10. (error) ERR value is not an integer or out of range
  11. 127.0.0.1:6379> INCR key3
  12. (error) ERR value is not an integer or out of range
  13. 127.0.0.1:6379>

8、lNCRBY 命令

让一个 int 型的 key 自增并指定步长

  1. 127.0.0.1:6379> SET key1 10
  2. OK
  3. 127.0.0.1:6379> INCRBY key1 2
  4. (integer) 12
  5. 127.0.0.1:6379>

9、INCRBYFLOAT 命令

让一个 float 型的数字自增并指定步长

  1. 127.0.0.1:6379> SET key1 10.5
  2. OK
  3. 127.0.0.1:6379> INCRBYFLOAT key1 1
  4. "11.5"
  5. 127.0.0.1:6379>

三、Hash 常用命令

Hash 类型,也叫散列,其 value 是一个无序字典,类似于 Java 中的 HashMap 结构。

String 结构是将对象序列化为 JSON 字符串后存储,当需要修改对象某个字段时很不方便
image.png

Hash 结构可以将对象中的每个字段独立存储,可以针对单个字段做 CRUD
image.png

Hash 的常见命令有:

  • HSET key field value:添加或者修改 Hash 类型 key 的 field 的值;
  • HGET key field:获取一个 Hash 类型 key 的 field 的值;
  • HMSET:批量添加多个 Hash 类型 key 的 field 的值;
  • HMGET:批量获取多个 Hash 类型 key 的 field 的值;
  • HGETALL:获取一个 Hash 类型的 key 中的所有的 field 和 value;
  • HSETNX:添加一个 Hash 类型的 key 的 field 值,前提是这个 field 不存在,否则不执行;
  • HKEYS:获取一个 Hash 类型的 key 中的所有的 field;
  • HVALS:获取一个 Hash 类型的 key 中的所有的 value;
  • HINCRBY:让一个 Hash 类型 key 的字段值自增并指定步长;

1、HSET 命令

添加或者修改 Hash 类型 key 的 field 的值

  1. 127.0.0.1:6379> HSET example:user:1 name zhangsan
  2. (integer) 1
  3. 127.0.0.1:6379> HGET example:user:1 name
  4. "zhangsan"
  5. 127.0.0.1:6379>

2、HGET 命令

获取一个 Hash 类型 key 的 field 的值

  1. 127.0.0.1:6379> HSET example:user:1 name zhangsan
  2. (integer) 1
  3. 127.0.0.1:6379> HGET example:user:1 name
  4. "zhangsan"
  5. 127.0.0.1:6379>

3、HMSET 命令

批量添加多个 Hash 类型 key 的 field 的值

  1. 127.0.0.1:6379> HMSET example:user:1 name zhangsan age 23
  2. OK
  3. 127.0.0.1:6379> HMGET example:user:1 name age
  4. 1) "zhangsan"
  5. 2) "23"
  6. 127.0.0.1:6379>

4、HMSET 命令

批量获取多个 Hash 类型 key 的 field 的值

  1. 127.0.0.1:6379> HMSET example:user:1 name zhangsan age 23
  2. OK
  3. 127.0.0.1:6379> HMGET example:user:1 name age
  4. 1) "zhangsan"
  5. 2) "23"
  6. 127.0.0.1:6379>

5、HGETALL 命令

获取一个 Hash 类型的 key 中的所有的 field 和 value;

  1. 127.0.0.1:6379> HMSET example:user:1 name zhangsan age 23
  2. OK
  3. 127.0.0.1:6379> HGETALL example:user:1
  4. 1) "name"
  5. 2) "zhangsan"
  6. 3) "age"
  7. 4) "23"
  8. 127.0.0.1:6379>

6、HSETNX 命令

添加一个 Hash 类型的 key 的 field 值,前提是这个 field 不存在,否则不执行;

  1. 127.0.0.1:6379> KEYS *
  2. (empty array)
  3. 127.0.0.1:6379> HSETNX example:user:1 name zhangsan
  4. (integer) 1
  5. 127.0.0.1:6379> HSETNX example:user:1 name zhangsan
  6. (integer) 0
  7. 127.0.0.1:6379>

7、HKEYS 命令

获取一个 Hash 类型的 key 中的所有的 field

  1. 127.0.0.1:6379> HMSET example:user:1 name zhangsan age 23
  2. OK
  3. 127.0.0.1:6379> HGETALL example:user:1
  4. 1) "name"
  5. 2) "zhangsan"
  6. 3) "age"
  7. 4) "23"
  8. 127.0.0.1:6379> HKEYS example:user:1
  9. 1) "name"
  10. 2) "age"
  11. 127.0.0.1:6379>

8、HVALS 命令

获取一个 Hash 类型的 key 中的所有的 value

  1. 127.0.0.1:6379> HMSET example:user:1 name zhangsan age 23
  2. OK
  3. 127.0.0.1:6379> HGETALL example:user:1
  4. 1) "name"
  5. 2) "zhangsan"
  6. 3) "age"
  7. 4) "23"
  8. 127.0.0.1:6379> HVALS example:user:1
  9. 1) "zhangsan"
  10. 2) "23"
  11. 127.0.0.1:6379>

9、HINCRBY 命令

让一个 Hash 类型 key 的字段值自增并指定步长;

  1. 127.0.0.1:6379> HMSET example:user:1 field1 10 field2 10.5 field3 hello
  2. OK
  3. 127.0.0.1:6379> HGETALL example:user:1
  4. 1) "field1"
  5. 2) "10"
  6. 3) "field2"
  7. 4) "10.5"
  8. 5) "field3"
  9. 6) "hello"
  10. 127.0.0.1:6379> HINCRBY example:user:1 field1 1
  11. (integer) 11
  12. 127.0.0.1:6379> HINCRBY example:user:1 field2 1
  13. (error) ERR hash value is not an integer
  14. 127.0.0.1:6379> HINCRBY example:user:1 field3 1
  15. (error) ERR hash value is not an integer
  16. 127.0.0.1:6379>

四、List 常用命令

Redis 中 的 List 类型与 Java 中的 LinkedList 类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。

特征也与LinkedList类似:

  • 有序;
  • 元素可以重复;
  • 插入和删除快;
  • 查询速度一般

List 常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表等。

List的常见命令有:

  • LPUSH key element … :向列表左侧插入一个或多个元素;
  • LPOP key [count]:移除并返回列表左侧的第一个或多个元素,没有则返回 nil;
  • RPUSH key [count] element … :向列表右侧插入一个或多个元素;
  • RPOP key:移除并返回列表右侧的第一个或多个元素,没有则返回 nil;
  • LRANGE key star end:返回一段角标范围内的所有元素(从 0 开始);
  • BLPOP:与 LPOP 类似,只不过在没有元素时等待指定时间,而不是直接返回 nil;
  • BRPOP:与 RPOP 类似,只不过在没有元素时等待指定时间,而不是直接返回 nil;

1、LPUSH 命令

向列表左侧插入一个或多个元素

  1. 127.0.0.1:6379> LPUSH mylist 1
  2. (integer) 1
  3. 127.0.0.1:6379> LPUSH mylist 2 3
  4. (integer) 3
  5. 127.0.0.1:6379> LRANGE mylist 0 2
  6. 1) "3"
  7. 2) "2"
  8. 3) "1"
  9. 127.0.0.1:6379>

2、LPOP 命令

移除并返回列表左侧的第一个或多个元素,没有则返回 nil

  1. 127.0.0.1:6379> LPUSH mylist 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> LRANGE mylist 0 3
  4. 1) "4"
  5. 2) "3"
  6. 3) "2"
  7. 4) "1"
  8. 127.0.0.1:6379> LPOP mylist
  9. "4"
  10. 127.0.0.1:6379> LRANGE mylist 0 3
  11. 1) "3"
  12. 2) "2"
  13. 3) "1"
  14. 127.0.0.1:6379> LPOP mylist 2
  15. 1) "3"
  16. 2) "2"
  17. 127.0.0.1:6379> LRANGE mylist 0 3
  18. 1) "1"
  19. 127.0.0.1:6379> LPOP mylist
  20. "1"
  21. 127.0.0.1:6379> LPOP mylist
  22. (nil)
  23. 127.0.0.1:6379>

3、RPUSH 命令

向列表右侧插入一个或多个元素

  1. 127.0.0.1:6379> RPUSH mylist 1
  2. (integer) 1
  3. 127.0.0.1:6379> RPUSH mylist 2 3
  4. (integer) 3
  5. 127.0.0.1:6379> LRANGE mylist 0 2
  6. 1) "1"
  7. 2) "2"
  8. 3) "3"
  9. 127.0.0.1:6379>

4、RPOP 命令

移除并返回列表右侧的第一个或多个元素,没有则返回 nil;

  1. 127.0.0.1:6379> RPUSH mylist 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> LRANGE mylist 0 3
  4. 1) "1"
  5. 2) "2"
  6. 3) "3"
  7. 4) "4"
  8. 127.0.0.1:6379> RPOP mylist
  9. "4"
  10. 127.0.0.1:6379> LRANGE mylist 0 3
  11. 1) "1"
  12. 2) "2"
  13. 3) "3"
  14. 127.0.0.1:6379> RPOP mylist 2
  15. 1) "3"
  16. 2) "2"
  17. 127.0.0.1:6379> LRANGE mylist 0 3
  18. 1) "1"
  19. 127.0.0.1:6379> RPOP mylist
  20. "1"
  21. 127.0.0.1:6379> RPOP mylist
  22. (nil)
  23. 127.0.0.1:6379>

5、LRANGE 命令

返回一段角标范围内的所有元素(从 0 开始);

  1. 127.0.0.1:6379> LPUSH mylist 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> LRANGE mylist 0 3
  4. 1) "4"
  5. 2) "3"
  6. 3) "2"
  7. 4) "1"
  8. 127.0.0.1:6379>

6、BLPOP 命令

与 LPOP 类似,只不过在没有元素时等待指定时间,而不是直接返回 nil

没有元素时等待指定时间
image.png

有元素了再进行 pop
image.png

7、RPOP 命令

与 RPOP 类似,只不过在没有元素时等待指定时间,而不是直接返回 nil
image.png

有元素了再进行 pop
image.png

五、Set 常用命令

Redis 的 Set 结构与 Java 中的 HashSet 类似,可以看做是一个 value 为 null 的 HashMap。因为 Redis 的 Set 也是一个 hash 表。

因此具备与 HashSet 类似的特征:

  • 无序;
  • 元素不可重复;
  • 查找快;
  • 支持交集、并集、差集等功能;

Set 的常见命令有:

  • SADD key member … :向 set 中添加一个或多个元素;
  • SREM key member … :移除 set 中的指定元素;
  • SCARD key:返回 set 中元素的个数;
  • SISMEMBER key membe:判断一个元素是否存在于 set 中;
  • SMEMBERS key:获取 set 中的所有元素;
  • SINTER key1 key2 …:求 key1 与 key2 的交集;
  • SDIFF key1 key2 …:求 key1 与 key2 的差集;
  • SUNION key1 key2 …:求 key1 和 key2 的并集;

1、SADD 命令

向 set 中添加一个或多个元素

  1. 127.0.0.1:6379> SADD myset 10
  2. (integer) 1
  3. 127.0.0.1:6379> SADD myset 10.5 hello
  4. (integer) 2
  5. 127.0.0.1:6379> SADD myset 10.5 hello
  6. (integer) 0
  7. 127.0.0.1:6379> SMEMBERS myset
  8. 1) "hello"
  9. 2) "10.5"
  10. 3) "10"
  11. 127.0.0.1:6379>

2、SREM 命令

移除 set 中的指定元素

  1. 127.0.0.1:6379> sadd myset 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> SMEMBERS myset
  4. 1) "1"
  5. 2) "2"
  6. 3) "3"
  7. 4) "4"
  8. 127.0.0.1:6379> SREM myset 1
  9. (integer) 1
  10. 127.0.0.1:6379> SMEMBERS myset
  11. 1) "2"
  12. 2) "3"
  13. 3) "4"
  14. 127.0.0.1:6379> SREM myset 2 4
  15. (integer) 2
  16. 127.0.0.1:6379> SMEMBERS myset
  17. 1) "3"
  18. 127.0.0.1:6379>

3、SCARD 命令

返回 set 中元素的个数

  1. 127.0.0.1:6379> SADD myset 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> SMEMBERS myset
  4. 1) "1"
  5. 2) "2"
  6. 3) "3"
  7. 4) "4"
  8. 127.0.0.1:6379> SCARD myset
  9. (integer) 4
  10. 127.0.0.1:6379>

4、SISMEMBER 命令

判断一个元素是否存在于 set 中

  1. 127.0.0.1:6379> SADD myset 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> SMEMBERS myset
  4. 1) "1"
  5. 2) "2"
  6. 3) "3"
  7. 4) "4"
  8. 127.0.0.1:6379> SISMEMBER myset 1
  9. (integer) 1
  10. 127.0.0.1:6379> SISMEMBER myset 5
  11. (integer) 0
  12. 127.0.0.1:6379>

5、SMEMBERS 命令

获取 set 中的所有元素

  1. 127.0.0.1:6379> SADD myset 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> SMEMBERS myset
  4. 1) "1"
  5. 2) "2"
  6. 3) "3"
  7. 4) "4"
  8. 127.0.0.1:6379>

6、SINTER 命令

求 key1 与 key2 的交集

  1. 127.0.0.1:6379> SADD set1 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> SADD set2 2 3 4 5
  4. (integer) 4
  5. 127.0.0.1:6379> SINTER set1 set2
  6. 1) "2"
  7. 2) "3"
  8. 3) "4"
  9. 127.0.0.1:6379>

7、SDIFF 命令

求 key1 与 key2 的差集

  1. 127.0.0.1:6379> SADD set1 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> SADD set2 2 3 4 5
  4. (integer) 4
  5. 127.0.0.1:6379> SDIFF set1 set2
  6. 1) "1"
  7. 127.0.0.1:6379>

8、SUNION 命令

求 key1 和 key2 的并集

  1. 127.0.0.1:6379> SADD set1 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> SADD set2 2 3 4 5
  4. (integer) 4
  5. 127.0.0.1:6379> SUNION set1 set2
  6. 1) "1"
  7. 2) "2"
  8. 3) "3"
  9. 4) "4"
  10. 5) "5"
  11. 127.0.0.1:6379>

六、SortedSet 常用命令

Redis 的 SortedSet 是一个可排序的 set 集合,与 Java 中的 TreeSet 有些类似,但底层数据结构却差别很大。SortedSet 中的每一个元素都带有一个 score 属性,可以基于 score 属性对元素排序,底层的实现是一个跳表(SkipList)加 Hash 表。

SortedSet 具备下列特性:

  • 可排序;;
  • 元素不重复;
  • 查询速度快;

因为 SortedSet 的可排序特性,经常被用来实现排行榜这样的功能。

SortedSet 的常见命令有:

  • ZADD key score member:添加一个或多个元素到 SortedSet ,已经存在则更新其 score 值;
  • ZREM key member:删除 SortedSet 中的一个指定元素;
  • ZSCORE key member : 获取 SortedSet 中的指定元素的 score 值;
  • ZRANK key member:获取 SortedSet 中的指定元素的排名;
  • ZCARD key:获取 SortedSet 中的元素个数;
  • ZCOUNT key min max:统计 score 值在给定范围内的所有元素的个数;
  • ZINCRBY key increment member:让 SortedSet 中的指定元素按指定步长自增;
  • ZRANGE key min max:按照 score 排序后,获取指定排名范围内的元素;
  • ZRANGEBYSCORE key min max:按照 score 排序后,获取指定 score 范围内的元素;
  • ZDIFF、ZINTER、ZUNION:求差集、交集、并集;

1、ZADD 命令

添加一个或多个元素到 SortedSet ,已经存在则更新其 score 值

  1. 127.0.0.1:6379> ZADD mysortset 11 zhangsan
  2. (integer) 1
  3. 127.0.0.1:6379> ZADD mysortset 12 li 13 wangwu
  4. (integer) 2
  5. 127.0.0.1:6379> ZRANGE mysortset 0 2
  6. 1) "zhangsan"
  7. 2) "li"
  8. 3) "wangwu"
  9. 127.0.0.1:6379>

2、ZREM 命令

删除 SortedSet 中的一个指定元素

  1. 127.0.0.1:6379> ZADD mysortset 11 zhangsan 12 lisi 13 wangwu 14 zhaoliu
  2. (integer) 4
  3. 127.0.0.1:6379> ZRANGE mysortset 0 3
  4. 1) "zhangsan"
  5. 2) "lisi"
  6. 3) "wangwu"
  7. 4) "zhaoliu"
  8. 127.0.0.1:6379> ZREM mysortset zhangsan
  9. (integer) 1
  10. 127.0.0.1:6379> ZRANGE mysortset 0 3
  11. 1) "lisi"
  12. 2) "wangwu"
  13. 3) "zhaoliu"
  14. 127.0.0.1:6379> ZREM mysortset lisi wangwu
  15. (integer) 2
  16. 127.0.0.1:6379> ZRANGE mysortset 0 3
  17. 1) "zhaoliu"
  18. 127.0.0.1:6379>

3、ZSCORE 命令

获取 SortedSet 中的指定元素的 score 值

  1. 127.0.0.1:6379> ZADD mysortset 11 zhangsan 12 lisi 13 wangwu 14 zhaoliu
  2. (integer) 4
  3. 127.0.0.1:6379> ZRANGE mysortset 0 3
  4. 1) "zhangsan"
  5. 2) "lisi"
  6. 3) "wangwu"
  7. 4) "zhaoliu"
  8. 127.0.0.1:6379> ZSCORE mysortset zhangsan
  9. "11"
  10. 127.0.0.1:6379> ZSCORE mysortset tianqi
  11. (nil)
  12. 127.0.0.1:6379>

4、ZRANK 命令

获取 SortedSet 中的指定元素的排名(索引)

  1. 127.0.0.1:6379> ZADD mysortset 11 zhangsan 12 lisi 13 wangwu 14 zhaoliu
  2. (integer) 4
  3. 127.0.0.1:6379> ZRANGE mysortset 0 3
  4. 1) "zhangsan"
  5. 2) "lisi"
  6. 3) "wangwu"
  7. 4) "zhaoliu"
  8. 127.0.0.1:6379> ZRANK mysortset zhangsan
  9. (integer) 0
  10. 127.0.0.1:6379> ZRANK mysortset zhaoliu
  11. (integer) 3
  12. 127.0.0.1:6379>

5、ZCARD 命令

获取 SortedSet 中的元素个数

  1. 127.0.0.1:6379> ZADD mysortset 11 zhangsan 12 lisi 13 wangwu 14 zhaoliu
  2. (integer) 4
  3. 127.0.0.1:6379> ZRANGE mysortset 0 3
  4. 1) "zhangsan"
  5. 2) "lisi"
  6. 3) "wangwu"
  7. 4) "zhaoliu"
  8. 127.0.0.1:6379> ZCARD mysortset
  9. (integer) 4
  10. 127.0.0.1:6379>

6、ZCOUNT 命令

统计 score 值在给定范围内的所有元素的个数

  1. 127.0.0.1:6379> ZADD mysortset 11 zhangsan 12 lisi 13 wangwu 14 zhaoliu
  2. (integer) 4
  3. 127.0.0.1:6379> ZRANGE mysortset 0 3
  4. 1) "zhangsan"
  5. 2) "lisi"
  6. 3) "wangwu"
  7. 4) "zhaoliu"
  8. 127.0.0.1:6379> ZCOUNT mysortset 11 12
  9. (integer) 2
  10. 127.0.0.1:6379>

7、ZINCRBY 命令

让 SortedSet 中的指定元素按指定步长自增

  1. 127.0.0.1:6379> ZADD mysortset 11 zhangsan 12 lisi 13 wangwu 14 zhaoliu
  2. (integer) 4
  3. 127.0.0.1:6379> ZRANGE mysortset 0 3
  4. 1) "zhangsan"
  5. 2) "lisi"
  6. 3) "wangwu"
  7. 4) "zhaoliu"
  8. 127.0.0.1:6379> ZINCRBY mysortset 2 zhangsan
  9. "13"
  10. 127.0.0.1:6379> ZSCORE mysortset zhangsan
  11. "13"
  12. 127.0.0.1:6379>

8、ZRANGE 命令

按照 score 排序后,获取指定排名范围内的元素

  1. 127.0.0.1:6379> ZADD mysortset 11 zhangsan 12 lisi 13 wangwu 14 zhaoliu
  2. (integer) 4
  3. 127.0.0.1:6379> ZRANGE mysortset 0 3
  4. 1) "zhangsan"
  5. 2) "lisi"
  6. 3) "wangwu"
  7. 4) "zhaoliu"

9、ZRANGEBYSCORE 命令

按照 score 排序后,获取指定 score 范围内的元素

  1. 127.0.0.1:6379> ZADD mysortset 11 zhangsan 12 lisi 13 wangwu 14 zhaoliu
  2. (integer) 4
  3. 127.0.0.1:6379> ZRANGEBYSCORE mysortset 13 14
  4. 1) "wangwu"
  5. 2) "zhaoliu"
  6. 127.0.0.1:6379>