Redis面试——常用命令
            
            
                
        
        
        
             
                
                    一、String
 
(1)设置值相关命令
 


 
1.1.1 SET
 
- 功能:设置一个键值对,如果键已存在则覆盖旧值
 - 语法: 
SET key value [EX seconds] [PX milliseconds] [NX|XX]
EX seconds:设置键的过期时间为 seconds 秒
PX milliseconds:设置键的过期时间为 milliseconds 毫秒
NX:仅当键不存在时设置
XX:仅当键已存在时设置
  - 示例: 
127.0.0.1:6379> SET mykey "Hello"
OK
  - 输出解释:OK 表示设置成功
 
 
1.1.2 SETNX
 
- 功能:仅当键不存在时设置键值对
 - 语法: 
SETNX key value
  - 示例: 
127.0.0.1:6379> SETNX mykey "World"
(integer) 0
  - 输出解释:因为 mykey 已经存在,所以返回 0 表示设置失败
 
 
1.1.3 SETEX
 
- 功能:设置键值对并同时设置过期时间(以秒为单位)
 - 语法: 
SETEX key seconds value
  - 示例: 
127.0.0.1:6379> SETEX mykey2 60 "Temporary Value"
OK
  - 输出解释:OK 表示设置成功,mykey2 将在 60 秒后过期
 
 
1.1.4 PSETEX
 
- 功能:设置键值对并同时设置过期时间(以毫秒为单位)
 - 语法: 
PSETEX key milliseconds value
  - 示例: 
127.0.0.1:6379> PSETEX mykey3 10000 "Short - lived Value"
OK
  - 输出解释:OK 表示设置成功,mykey3 将在 10000 毫秒(即 10 秒)后过期
 
 
1.1.5 MSET
 
- 功能:同时设置多个键值对
 - 语法: 
MSET key1 value1 [key2 value2 ...]
  - 示例: 
127.0.0.1:6379> MSET key1 "value1" key2 "value2"
OK
  - 输出解释:OK 表示所有键值对都设置成功
 
 
1.1.6 MSETNX
 
- 功能:仅当所有给定键都不存在时,同时设置多个键值对。如果有一个键已存在,则所有键都不会被设置
 - 语法: 
MSETNX key1 value1 [key2 value2 ...]
  - 示例: 
127.0.0.1:6379> MSETNX key3 "value3" key4 "value4"
(integer) 1
  - 输出解释:返回 1 表示所有键都不存在,设置成功
 
 
(2)获取值相关命令
 
1.2.1 GET
 
- 功能:获取指定键的值。如果键不存在,返回 (nil)
 - 语法: 
GET key
  - 示例: 
127.0.0.1:6379> GET mykey
"Hello"
  - 输出解释:返回键 mykey 对应的值 "Hello"
 
 
1.2.2 MGET
 
- 功能:同时获取多个键的值。如果某个键不存在,对应位置返回 (nil)
 - 语法: 
MGET key1 [key2 ...]
  - 示例: 
127.0.0.1:6379> MGET key1 key2 key3
1) "value1"
2) "value2"
3) "value3"
  - 输出解释:依次返回 key1、key2、key3 的值
 
 
(3)数值操作相关命令
 
1.3.1 INCR
 
- 功能:将键的值递增 1。如果键不存在,则先将其值初始化为 0 再进行递增。键的值必须是整数
 - 语法: 
INCR key
  - 示例: 
127.0.0.1:6379> SET counter 10
OK
127.0.0.1:6379> INCR counter
(integer) 11
  - 输出解释:counter 的值从 10 递增到 11
 
 
1.3.2 DECR
 
- 功能:将键的值递减 1。如果键不存在,则先将其值初始化为 0 再进行递减。键的值必须是整数
 - 语法: 
DECR key
  - 示例: 
127.0.0.1:6379> DECR counter
(integer) 10
  - 输出解释:counter 的值从 11 递减到 10
 
 
1.3.3 INCRBY
 
- 功能:将键的值增加指定的整数。如果键不存在,则先将其值初始化为 0 再进行增加
 - 语法: 
INCRBY key increment
  - 示例: 
127.0.0.1:6379> INCRBY counter 5
(integer) 15
  - 输出解释:counter 的值增加 5 后变为 15
 
 
1.3.4 DECRBY
 
- 功能:将键的值减少指定的整数。如果键不存在,则先将其值初始化为 0 再进行减少
 - 语法: 
DECRBY key decrement
  - 示例: 
127.0.0.1:6379> DECRBY counter 3
(integer) 12
  - 输出解释:counter 的值减少 3 后变为 12
 
 
1.3.5 INCRBYFLOAT
 
- 功能:将键的值增加指定的浮点数。如果键不存在,则先将其值初始化为 0 再进行增加
 - 语法: 
INCRBYFLOAT key increment
  - 示例: 
127.0.0.1:6379> SET float_counter 2.5
OK
127.0.0.1:6379> INCRBYFLOAT float_counter 1.5
"4"
  - 输出解释:float_counter 的值从 2.5 增加 1.5 后变为 4
 
 
(4)字符串操作相关命令
 
1.4.1 APPEND
 
- 功能:如果键已经存在,将指定的值追加到键的现有值的末尾;如果键不存在,则等同于 SET 命令
 - 语法: 
APPEND key value
  - 示例: 
127.0.0.1:6379> SET message "Hello"
OK
127.0.0.1:6379> APPEND message " World"
(integer) 11
  - 输出解释:返回追加后字符串的长度,此时 message 的值为 "Hello World"
 
 
1.4.2 STRLEN
 
- 功能:返回键对应值的字符串长度。如果键不存在,返回 0
 - 语法: 
STRLEN key
  - 示例: 
127.0.0.1:6379> STRLEN message
(integer) 11
  - 输出解释:message 的值 "Hello World" 长度为 11
 
 
1.4.3 GETRANGE
 
- 功能:返回键对应值的子字符串,通过指定起始和结束索引。索引从 0 开始,负数表示从字符串末尾开始计数
 - 语法: 
GETRANGE key start end
  - 示例: 
127.0.0.1:6379> GETRANGE message 0 4
"Hello"
  - 输出解释:返回 message 从索引 0 到 4 的子字符串 "Hello"
 
 
1.4.4 SETRANGE
 
- 功能:从指定的偏移量开始,用指定的值覆盖键对应值的一部分。如果偏移量超过了原字符串的长度,中间会用 0 字节填充
 - 语法: 
SETRANGE key offset value
  - 示例: 
127.0.0.1:6379> SETRANGE message 6 "Redis"
(integer) 11
127.0.0.1:6379> GET message
"Hello Redis"
  - 输出解释:返回修改后字符串的长度,message 的值被修改为 "Hello Redis"
 
 
二、List
 


 
(1)插入元素命令
 
2.1.1 LPUSH
 
- 功能:将一个或多个值插入到列表的头部(左侧)。若列表不存在,会先创建一个空列表再插入
 - 语法: 
LPUSH key value [value ...]
  - 示例: 
127.0.0.1:6379> LPUSH mylist "apple"
(integer) 1
127.0.0.1:6379> LPUSH mylist "banana" "cherry"
(integer) 3
  - 输出解释:第一次插入后列表长度为 1,第二次插入两个值后列表长度变为 3。当前列表 mylist 元素顺序为 ["cherry", "banana", "apple"]
 
 
2.1.2 RPUSH
 
- 功能:将一个或多个值插入到列表的尾部(右侧)。若列表不存在,会先创建空列表再插入
 - 语法: 
RPUSH key value [value ...]
  - 示例: 
127.0.0.1:6379> RPUSH mylist "date"
(integer) 4
  - 输出解释:插入后列表长度变为 4,此时列表 mylist 元素顺序为 ["cherry", "banana", "apple", "date"]
 
 
2.1.3 LPUSHX
 
- 功能:仅当列表存在时,将一个值插入到列表的头部
 - 语法: 
LPUSHX key value
  - 示例: 
127.0.0.1:6379> LPUSHX mylist "elderberry"
(integer) 5
  - 输出解释:由于 mylist 存在,插入成功,列表长度变为 5,元素顺序为 ["elderberry", "cherry", "banana", "apple", "date"]
 
 
2.1.4 RPUSHX 
 
- 功能:仅当列表存在时,将一个值插入到列表的尾部
 - 语法: 
RPUSHX key value
  - 示例: 
127.0.0.1:6379> RPUSHX mylist "fig"
(integer) 6
  - 输出解释:因为 mylist 存在,插入成功,列表长度变为 6,元素顺序为 ["elderberry", "cherry", "banana", "apple", "date", "fig"]
 
 
(2)移除元素命令
 
2.2.1 LPOP
 
- 功能:移除并返回列表的第一个元素(头部元素)。若列表为空,返回 (nil)
 - 语法: 
LPOP key
  - 示例: 
127.0.0.1:6379> LPOP mylist
"elderberry"
  - 输出解释:移除并返回了列表 mylist 的头部元素 "elderberry",此时列表元素顺序为 ["cherry", "banana", "apple", "date", "fig"]
 
 
2.2.2 RPOP
 
- 功能:移除并返回列表的最后一个元素(尾部元素)。若列表为空,返回 (nil)
 - 语法: 
RPOP key
  - 示例: 
127.0.0.1:6379> RPOP mylist
"fig"
  - 输出解释:移除并返回了列表 mylist 的尾部元素 "fig",此时列表元素顺序为 ["cherry", "banana", "apple", "date"]
 
 
(3)获取元素命令
 
2.3.1 LRANGE
 
- 功能:返回列表中指定范围的元素。索引从 0 开始,负数表示从列表末尾开始计数,如 
-1 表示最后一个元素 - 语法: 
LRANGE key start stop
  - 示例: 
127.0.0.1:6379> LRANGE mylist 0 -1
1) "cherry"
2) "banana"
3) "apple"
4) "date"
  - 输出解释:返回了列表 mylist 中从索引 0 到最后一个元素的所有元素
 
 
2.3.2 LINDEX
 
- 功能:返回列表中指定索引位置的元素。若索引超出列表范围,返回 (nil)
 - 语法: 
LINDEX key index
  - 示例: 
127.0.0.1:6379> LINDEX mylist 2
"apple"
  - 输出解释:返回了列表 mylist 中索引为 2 的元素 "apple"
 
 
(4)列表长度命令
 
2.4.1 LLEN
 
- 功能:返回列表的长度。若列表不存在,返回 0
 - 语法: 
LLEN key
  - 示例: 
127.0.0.1:6379> LLEN mylist
(integer) 4
  - 输出解释:列表 mylist 的长度为 4
 
 
(5)列表修剪命令
 
2.5.1 LTRIM
 
- 功能:对列表进行修剪,只保留指定范围内的元素,其他元素会被删除
 - 语法: 
LTRIM key start stop
  - 示例: 
127.0.0.1:6379> LTRIM mylist 1 2
OK
127.0.0.1:6379> LRANGE mylist 0 -1
1) "banana"
2) "apple"
  - 输出解释:保留了列表 mylist 中索引 1 到 2 的元素,删除了其他元素。修剪后列表元素顺序为 ["banana", "apple"]
 
 
(6)阻塞式弹出命令
 
2.6.1 BLPOP
 
- 功能:阻塞式地从一个或多个列表的头部弹出元素。若所有列表都为空,客户端会被阻塞,直到有元素被插入到任何一个列表中或者达到指定的超时时间
 - 语法: 
BLPOP key [key ...] timeout
  - 示例:假设当前有两个列表 list1 为空,list2 有元素 ["item1"] 
127.0.0.1:6379> BLPOP list1 list2 10
1) "list2"
2) "item1"
  - 输出解释:客户端从 list2 中弹出了头部元素 "item1",因为 list1 为空,list2 有元素。若两个列表都为空,客户端会阻塞最多 10 秒
 
 
2.6.2 BRPOP
 
- 功能:阻塞式地从一个或多个列表的尾部弹出元素。若所有列表都为空,客户端会被阻塞,直到有元素被插入到任何一个列表中或者达到指定的超时时间
 - 语法: 
BRPOP key [key ...] timeout
  - 示例:与 BLPOP 类似,只是从尾部弹出元素
 
 
(7)列表元素移动命令
 
2.7.1 RPOPLPUSH
 
- 功能:移除列表的最后一个元素,并将其插入到另一个列表的头部
 - 语法: 
RPOPLPUSH source destination
  - 示例: 
127.0.0.1:6379> RPOPLPUSH mylist anotherlist
"apple"
  - 输出解释:将列表 mylist 的尾部元素 "apple" 移除,并插入到列表 anotherlist 的头部
 
 
2.7.2 BRPOPLPUSH
 
- 功能:阻塞式地从一个列表的尾部弹出元素,并将其插入到另一个列表的头部。若源列表为空,客户端会被阻塞,直到有元素被插入到源列表中或者达到指定的超时时间
 - 语法: 
BRPOPLPUSH source destination timeout
  - 示例:与 RPOPLPUSH 类似,但具有阻塞功能
 
 
三、Hash
 

 
(1)设置哈希字段
 
3.1.1 HSET
 
- 功能:为哈希表中的一个或多个字段设置值。如果哈希表不存在,会创建一个新的哈希表;如果字段已存在,会覆盖旧值
 - 语法: 
HSET key field value [field value ...]
  - 示例: 
127.0.0.1:6379> HSET user:1 name "Alice" age 25
(integer) 2
  - 输出解释:
 
 
3.1.2 HSETNX
 
- 功能:仅当字段不存在时,为哈希表中的字段设置值
 - 语法: 
HSETNX key field value
  - 示例: 
127.0.0.1:6379> HSETNX user:1 email "alice@example.com"
(integer) 1
127.0.0.1:6379> HSETNX user:1 name "Bob"
(integer) 0
  - 输出解释:第一次执行 HSETNX 时,email 字段不存在,设置成功,返回 1;第二次执行时,name 字段已存在,设置失败,返回 0
 
 
(2)获取哈希字段的值
 
3.2.1 HGET
 
- 功能:获取哈希表中指定字段的值。如果字段不存在,返回 (nil)
 - 语法: 
HGET key field
  - 示例: 
127.0.0.1:6379> HGET user:1 name
"Alice"
  - 输出解释:返回哈希表 user:1 中 name 字段的值 "Alice"
 
 
3.2.2 HMGET
 
- 功能:获取哈希表中一个或多个字段的值。如果某个字段不存在,对应位置返回 (nil)
 - 语法: 
HMGET key field [field ...]
  - 示例: 
127.0.0.1:6379> HMGET user:1 name age email
1) "Alice"
2) "25"
3) "alice@example.com"
  - 输出解释:依次返回 name、age、email 字段的值
 
 
3.2.3 HGETALL
 
- 功能:获取哈希表中所有的字段和值。返回的结果是字段和值交替出现
 - 语法: 
HGETALL key
  - 示例: 
127.0.0.1:6379> HGETALL user:1
1) "name"
2) "Alice"
3) "age"
4) "25"
5) "email"
6) "alice@example.com"
  - 输出解释:返回哈希表 user:1 中所有的字段和对应的值
 
 
(3)删除哈希字段
 
3.3.1 HDEL
 
- 功能:删除哈希表中一个或多个字段。返回被删除字段的数量
 - 语法: 
HDEL key field [field ...]
  - 示例: 
127.0.0.1:6379> HDEL user:1 email
(integer) 1
  - 输出解释:成功删除了 user:1 哈希表中的 email 字段,返回 1
 
 
(4)检查哈希字段是否存在
 
3.4.1 HEXISTS
 
- 功能:检查哈希表中指定字段是否存在。如果存在,返回 1;否则返回 0
 - 语法: 
HEXISTS key field
  - 示例: 
127.0.0.1:6379> HEXISTS user:1 name
(integer) 1
127.0.0.1:6379> HEXISTS user:1 email
(integer) 0
  - 输出解释:name 字段存在,返回 1;email 字段已被删除,返回 0
 
 
(5)获取哈希表的字段数量
 
3.5.1 HLEN
 
- 功能:返回哈希表中字段的数量。如果哈希表不存在,返回 0
 - 语法: 
HLEN key
  - 示例: 
127.0.0.1:6379> HLEN user:1
(integer) 2
  - 输出解释:哈希表 user:1 中目前有 name 和 age 两个字段,所以返回 2
 
 
(6)获取哈希表的所有字段或所有值
 
3.6.1 HKEYS
 
- 功能:返回哈希表中所有的字段
 - 语法: 
HKEYS key
  - 示例: 
127.0.0.1:6379> HKEYS user:1
1) "name"
2) "age"
  - 输出解释:返回哈希表 user:1 中所有的字段名
 
 
3.6.2 HVALS
 
- 功能:返回哈希表中所有的值
 - 语法: 
HVALS key
  - 示例: 
127.0.0.1:6379> HVALS user:1
1) "Alice"
2) "25"
  - 输出解释:返回哈希表 user:1 中所有字段对应的值
 
 
(7)数值操作
 
3.7.1 HINCRBY
 
- 功能:将哈希表中指定字段的值增加指定的整数。如果字段不存在,会先将其值初始化为 0 再进行增加
 - 语法: 
HINCRBY key field increment
  - 示例: 
127.0.0.1:6379> HINCRBY user:1 age 5
(integer) 30
  - 输出解释:将 user:1 哈希表中 age 字段的值增加 5,新的值为 30
 
 
3.7.2 HINCRBYFLOAT
 
- 功能:将哈希表中指定字段的值增加指定的浮点数。如果字段不存在,会先将其值初始化为 0 再进行增加
 - 语法: 
HINCRBYFLOAT key field increment
  - 示例:假设 user:1 哈希表中有一个 score 字段,值为 80.5 
127.0.0.1:6379> HINCRBYFLOAT user:1 score 5.5
"86"
  - 输出解释:将 user:1 哈希表中 score 字段的值增加 5.5,新的值为 86
 
 
四、Set
 
(1)添加元素
 
4.1.1 SADD
 
- 功能:向集合中添加一个或多个元素。如果元素已经存在于集合中,则忽略该元素;如果集合不存在,则创建一个新集合
 - 语法: 
SADD key member [member ...]
  - 示例: 
127.0.0.1:6379> SADD myset "apple" "banana" "cherry"
(integer) 3
  - 输出解释:返回成功添加到集合中的元素数量。这里添加了三个新元素,所以返回 3
 
 
(2)移除元素
 
4.2.1 SREM
 
- 功能:从集合中移除一个或多个元素。如果元素不存在于集合中,则忽略该元素
 - 语法: 
SREM key member [member ...]
  - 示例: 
127.0.0.1:6379> SREM myset "banana"
(integer) 1
  - 输出解释:返回成功从集合中移除的元素数量。这里移除了 "banana" 元素,所以返回 1
 
 
(3)获取集合中的所有元素
 
4.3.1 SMEMBERS
 
- 功能:返回集合中的所有元素
 - 语法: 
SMEMBERS key
  - 示例: 
127.0.0.1:6379> SMEMBERS myset
1) "apple"
2) "cherry"
  - 输出解释:返回集合 myset 中的所有元素
 
 
(4)检查元素是否存在于集合中
 
4.4.1 SISMEMBER
 
- 功能:检查指定元素是否存在于集合中。如果存在,返回 1;否则返回 0
 - 语法: 
SISMEMBER key member
  - 示例: 
127.0.0.1:6379> SISMEMBER myset "apple"
(integer) 1
127.0.0.1:6379> SISMEMBER myset "banana"
(integer) 0
  - 输出解释:"apple" 存在于集合中,返回 1;"banana" 已被移除,不存在于集合中,返回 0
 
 
(5)获取集合的元素数量
 
4.5.1 SCARD
 
- 功能:返回集合中的元素数量。如果集合不存在,返回 0
 - 语法: 
SCARD key
  - 示例: 
127.0.0.1:6379> SCARD myset
(integer) 2
  - 输出解释:集合 myset 中目前有两个元素,所以返回 2
 
 
(6)集合运算
 
4.6.1 SINTER
 
- 功能:返回多个集合的交集,即同时存在于所有集合中的元素
 - 语法: 
SINTER key [key ...]
  - 示例: 
127.0.0.1:6379> SADD set1 "apple" "banana" "cherry"
(integer) 3
127.0.0.1:6379> SADD set2 "apple" "date"
(integer) 2
127.0.0.1:6379> SINTER set1 set2
1) "apple"
  - 输出解释:集合 set1 和 set2 的交集只有 "apple",所以返回该元素
 
 
4.6.2 SUNION
 
- 功能:返回多个集合的并集,即包含所有集合中的所有元素
 - 语法: 
SUNION key [key ...]
  - 示例: 
127.0.0.1:6379> SUNION set1 set2
1) "apple"
2) "banana"
3) "cherry"
4) "date"
  - 输出解释:集合 set1 和 set2 的并集包含 "apple"、"banana"、"cherry" 和 "date",所以返回这些元素
 
 
4.6.3 SDIFF
 
- 功能:返回多个集合的差集,即存在于第一个集合但不存在于其他集合中的元素
 - 语法: 
SDIFF key [key ...]
  - 示例: 
127.0.0.1:6379> SDIFF set1 set2
1) "banana"
2) "cherry"
  - 输出解释:集合 set1 中存在但集合 set2 中不存在的元素是 "banana" 和 "cherry",所以返回这两个元素
 
 
(7)随机获取元素
 
4.7.1 SRANDMEMBER
 
- 功能:随机返回集合中的一个或多个元素。如果不指定数量,则默认返回一个元素;如果指定的数量为正数,则返回不重复的元素;如果指定的数量为负数,则可能返回重复的元素
 - 语法: 
SRANDMEMBER key [count]
  - 示例: 
127.0.0.1:6379> SRANDMEMBER myset
"apple"
127.0.0.1:6379> SRANDMEMBER myset 2
1) "apple"
2) "cherry"
  - 输出解释:第一次调用随机返回了 "apple";第二次调用指定返回两个元素,返回了 "apple" 和 "cherry"
 
 
(8)随机移除元素
 
4.8.1 SPOP
 
- 功能:随机移除并返回集合中的一个或多个元素
 - 语法: 
SPOP key [count]
  - 示例: 
127.0.0.1:6379> SPOP myset
"cherry"
  - 输出解释:随机移除并返回了集合 myset 中的 "cherry" 元素。移除后,集合 myset 中只剩下 "apple" 元素
 
 
(9)移动元素到另一个集合
 
4.9.1 SMOVE
 
- 功能:将一个元素从一个集合移动到另一个集合。如果源集合中不存在该元素,则不进行任何操作;如果目标集合不存在,则创建一个新集合
 - 语法: 
SMOVE source destination member
  - 示例: 
127.0.0.1:6379> SMOVE myset newset "apple"
(integer) 1
  - 输出解释:成功将 "apple" 元素从 myset 集合移动到 newset 集合,返回 1。此时 myset 集合为空,newset 集合包含 "apple" 元素
 
 
五、Zset
 

 
(1)添加元素
 
5.1.1 ZADD
 
- 功能:向有序集合中添加一个或多个成员及其分数。如果成员已存在,则更新其分数;如果有序集合不存在,则创建一个新的有序集合
 - 语法: 
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
NX:仅当成员不存在时添加
XX:仅当成员已存在时更新分数
CH:返回被修改的成员数量,包括新添加和分数更新的成员
INCR:对已存在成员的分数进行增量操作,此时只能指定一个成员
  - 示例: 
127.0.0.1:6379> ZADD myzset 10 "member1" 20 "member2" 30 "member3"
(integer) 3
  - 输出解释:成功添加了三个成员,返回 3。此时有序集合 myzset 包含 ("member1", 10)、("member2", 20)、("member3", 30)
 
 
(2)获取成员分数
 
5.2.1 ZSCORE
 
- 功能:返回有序集合中指定成员的分数。如果成员不存在,返回 (nil)
 - 语法: 
ZSCORE key member
  - 示例: 
127.0.0.1:6379> ZSCORE myzset "member2"
"20"
  - 输出解释:返回成员 "member2" 的分数 20
 
 
(3)获取成员排名
 
5.3.1 ZRANK
 
- 功能:返回有序集合中指定成员的排名(按分数从小到大排序),排名从 0 开始。如果成员不存在,返回 (nil)
 - 语法: 
ZRANK key member
  - 示例: 
127.0.0.1:6379> ZRANK myzset "member2"
(integer) 1
  - 输出解释:成员 "member2" 在有序集合中按分数从小到大排第 1(排名从 0 开始)
 
 
5.3.2 ZREVRANK
 
- 功能:返回有序集合中指定成员的排名(按分数从大到小排序),排名从 0 开始。如果成员不存在,返回 (nil)
 - 语法: 
ZREVRANK key member
  - 示例: 
127.0.0.1:6379> ZREVRANK myzset "member2"
(integer) 1
  - 输出解释:成员 "member2" 在有序集合中按分数从大到小排第 1(排名从 0 开始)
 
 
(4)获取指定范围的成员
 
5.4.1 ZRANGE
 
- 功能:返回有序集合中指定排名范围(按分数从小到大)的成员。可以选择同时返回成员的分数
 - 语法: 
ZRANGE key start stop [WITHSCORES]
  - 示例: 
127.0.0.1:6379> ZRANGE myzset 0 -1 WITHSCORES
1) "member1"
2) "10"
3) "member2"
4) "20"
5) "member3"
6) "30"
  - 输出解释:返回有序集合 myzset 中所有成员及其分数,按分数从小到大排序
 
 
5.4.2 ZREVRANGE
 
- 功能:返回有序集合中指定排名范围(按分数从大到小)的成员。可以选择同时返回成员的分数
 - 语法: 
ZREVRANGE key start stop [WITHSCORES]
  - 示例: 
127.0.0.1:6379> ZREVRANGE myzset 0 -1 WITHSCORES
1) "member3"
2) "30"
3) "member2"
4) "20"
5) "member1"
6) "10"
  - 输出解释:返回有序集合 myzset 中所有成员及其分数,按分数从大到小排序
 
 
(5)获取指定分数范围的成员
 
5.5.1 ZRANGEBYSCORE
 
- 功能:返回有序集合中指定分数范围(按分数从小到大)的成员。可以选择同时返回成员的分数
 - 语法: 
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
  - 示例: 
127.0.0.1:6379> ZRANGEBYSCORE myzset 10 20 WITHSCORES
1) "member1"
2) "10"
3) "member2"
4) "20"
  - 输出解释:返回有序集合 myzset 中分数在 10 到 20 之间的成员及其分数,按分数从小到大排序
 
 
5.5.2 ZREVRANGEBYSCORE
 
- 功能:返回有序集合中指定分数范围(按分数从大到小)的成员。可以选择同时返回成员的分数
 - 语法: 
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
  - 示例: 
127.0.0.1:6379> ZREVRANGEBYSCORE myzset 20 10 WITHSCORES
1) "member2"
2) "20"
3) "member1"
4) "10"
  - 输出解释:返回有序集合 myzset 中分数在 10 到 20 之间的成员及其分数,按分数从大到小排序
 
 
(6)移除成员
 
5.6.1 ZREM
 
- 功能:从有序集合中移除一个或多个成员。返回成功移除的成员数量
 - 语法: 
ZREM key member [member ...]
  - 示例: 
127.0.0.1:6379> ZREM myzset "member2"
(integer) 1
  - 输出解释:成功移除了成员 "member2",返回 1
 
 
(7)增加成员分数
 
5.7.1 ZINCRBY
 
- 功能:为有序集合中指定成员的分数增加指定的增量。如果成员不存在,则先添加该成员并将分数初始化为增量值
 - 语法: 
ZINCRBY key increment member
  - 示例: 
127.0.0.1:6379> ZINCRBY myzset 5 "member1"
"15"
  - 输出解释:成员 "member1" 的分数增加 5 后变为 15
 
 
(8)获取有序集合的成员数量
 
5.8.1 ZCARD
 
- 功能:返回有序集合中的成员数量。如果有序集合不存在,返回 0
 - 语法: 
ZCARD key
  - 示例: 
127.0.0.1:6379> ZCARD myzset
(integer) 2
  - 输出解释:有序集合 myzset 中目前有 2 个成员
 
 
(9)获取指定分数范围内的成员数量
 
5.9.1 ZCOUNT
 
- 功能:返回有序集合中指定分数范围内的成员数量
 - 语法: 
ZCOUNT key min max
  - 示例: 
127.0.0.1:6379> ZCOUNT myzset 10 20
(integer) 1
  - 输出解释:有序集合 myzset 中分数在 10 到 20 之间的成员有 1 个
 
 
(10)移除指定排名范围的成员
 
5.10.1 ZREMRANGEBYRANK
 
- 功能:移除有序集合中指定排名范围(按分数从小到大)的成员。返回被移除的成员数量
 - 语法: 
ZREMRANGEBYRANK key start stop
  - 示例: 
127.0.0.1:6379> ZREMRANGEBYRANK myzset 0 0
(integer) 1
  - 输出解释:移除了有序集合 myzset 中排名第 0 的成员,返回 1
 
 
(11)移除指定分数范围的成员
 
5.11.1 ZREMRANGEBYSCORE
 
- 功能:移除有序集合中指定分数范围的成员。返回被移除的成员数量
 - 语法: 
ZREMRANGEBYSCORE key min max
  - 示例: 
127.0.0.1:6379> ZREMRANGEBYSCORE myzset 10 20
(integer) 0
  - 输出解释:由于之前移除操作后,分数在 10 到 20 之间已无成员,所以返回 0
 
 
                 
         
             
            
            
              
                本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2337518.html
              
              如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!