寫在前面
今天我們繼續學習 Redis。
Redis 常用資料型別
在 Redis 中,每個儲存的鍵值對中,鍵是 String 型別,值可以是不同的資料型別。Redis 的索引是含頭含尾的。
String
記憶體模型
常用指令
-
設定值
SET key value
: 設定一個 key/value。MSET key1 value1 [key2 value2 ...]
: 一次設定多個 key/value。SETEX key seconds value
: 設定一個 key 的有效期(秒),可以設定不存在的鍵。PSETEX key milliseconds value
: 設定一個 key 的有效期(毫秒)。SETNX key value
: 如果 key 不存在則設定值。MSETNX key1 value1 [key2 value2 ...]
: 同時設定多個 key,只有當所有 key 不存在時才會儲存。
-
獲取值
GET key
: 根據 key 獲取對應的 value。MGET key1 [key2 ...]
: 一次獲取多個 key 的 value。GETSET key value
: 獲取原始 key 的值,同時設定新值。GETRANGE key start end
: 擷取 value 的內容,從 start 到 end(含頭含尾)。
-
其他操作
STRLEN key
: 獲取對應 key 儲存 value 的長度。APPEND key value
: 為對應 key 的 value 追加內容,返回修改後的總字串長度。DECR key
: 數值型別的 -1 操作。DECRBY key decrement
: 根據提供的資料進行減法操作。INCR key
: 數值型別的 +1 操作。INCRBY key increment
: 根據提供的資料進行加法操作。INCRBYFLOAT key increment
: 根據提供的資料加入浮點數(不進行四捨五入)。
List
記憶體模型
常用指令
-
操作列表
LPUSH key value [value ...]
: 將某個值加入到列表的頭部。如果列表不存在,會建立新列表。LPUSHX key value
: 在列表存在時,將值加入到列表的頭部。RPUSH key value [value ...]
: 將某個值加入到列表的末尾。RPUSHX key value
: 在列表存在時,將值加入到列表的末尾。
-
獲取和刪除
LPOP key
: 從列表左邊返回並移除第一個元素。RPOP key
: 從列表右邊返回並移除第一個元素。LRANGE key start stop
: 獲取指定範圍內的元素。LLEN key
: 獲取列表元素個數。LSET key index value
: 設定指定索引的值。LINDEX key index
: 獲取指定索引位置的元素。LREM key count value
: 刪除列表中指定的元素。LTRIM key start stop
: 保留列表中特定區間內的元素,刪除其他元素。LINSERT key BEFORE|AFTER pivot value
: 在指定元素之前或之後插入新元素。
Set
記憶體模型
Set 是無序且不可重複的。
常用指令
-
操作集合
SADD key member [member ...]
: 向集合新增元素。SMEMBERS key
: 顯示集合中所有元素。SCARD key
: 返回集合中元素的個數。SPOP key
: 隨機返回並刪除一個元素。SMOVE source destination member
: 從一個集合移動元素到另一個集合(必須是同種型別)。SREM key member [member ...]
: 從集合中刪除指定元素。SISMEMBER key member
: 判斷集合中是否包含某個元素。SRANDMEMBER key [count]
: 隨機返回集合中的元素。
-
集合運算
SDIFF key [key ...]
: 返回第一個集合中不在其他集合中的元素。SINTER key [key ...]
: 求集合的交集。SUNION key [key ...]
: 求集合的並集。
Sorted Set (ZSet)
記憶體模型
Sorted Set 是可排序的集合,元素不可重複,並且具有分數。
常用指令
- 操作有序集合
ZADD key score member [score member ...]
: 新增元素到有序集合。ZCARD key
: 返回集合的元素個數。ZRANGE key start stop [WITHSCORES]
: 返回指定範圍內的元素(升序)。ZREVRANGE key start stop [WITHSCORES]
: 返回指定範圍內的元素(降序)。ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
: 按分數查詢範圍內的元素。ZRANK key member
: 返回元素的排名(升序)。ZREVRANK key member
: 返回元素的倒序排名。ZSCORE key member
: 顯示元素的分數。ZREM key member [member ...]
: 移除某個元素。ZINCRBY key increment member
: 為元素增加分數。
Hash
記憶體模型
Hash 的 value 是一個 map 結構,儲存鍵值對。Redis 中的 Hash 類似於 Map
型別,鍵無序。
常用指令
-
操作雜湊
HSET key field value [field value ...]
: 設定一個或多個 key/value 對。HMSET key field value [field value ...]
: 設定多個 key/value 對。HSETNX key field value
: 設定一個不存在的 key 的值。
-
獲取雜湊值
HGET key field
: 獲取指定 field 對應的 value。HGETALL key
: 獲取所有的 key/value 對。HMGET key field [field ...]
: 獲取多個 field 對應的 value。
-
其他操作
HDEL key field [field ...]
: 刪除指定的 field。HEXISTS key field
: 判斷 field 是否存在。HKEYS key
: 獲取所有的 key。HVALS key
: 獲取所有的 value。HINCRBY key field increment
: 為指定 field 的 value 執行加法操作。HINCRBYFLOAT key field increment
: 為指定 field 的 value 執行浮點數加法操作。