Redis元件介紹(二)

ikestu小猪發表於2024-08-29

寫在前面

今天我們繼續學習 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 執行浮點數加法操作。

相關文章