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.pswp.cn/news/902375.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902375.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902375.shtml
如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!