寫在前面 今天我們繼續學習 Redis。 Redis 常用數據類型 在 Redis 中,每個存儲的鍵值對中,鍵是 String 類型,值可以是不同的數據類型。Redis 的索引是含頭含尾的。 String 記憶體模型 常用指令 設置值 SET key value: 設置一個 key/value。 MS ...
寫在前面
今天我們繼續學習 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 執行浮點數加法操作。