Redis元件介紹(四)

ikestu小猪發表於2024-09-01

寫在前面

今天繼續學習後面的知識。

Redis 操作命令

操作 List 相關 API

  1. LPUSH

    • 說明: 將某個值加入到一個 key 列表的頭部。當列表不存在時會建立。
    • 語法: LPUSH key value [value ...]
    • 返回值: 成功返回列表的元素個數,失敗返回 0。
  2. LPUSHX

    • 說明: 與 LPUSH 類似,但必須保證 key 存在。
    • 語法: LPUSHX key value
    • 返回值: 成功返回列表的元素個數,失敗返回 0。
  3. RPUSH

    • 說明: 將某個值加入到一個 key 列表的末尾。
    • 語法: RPUSH key value [value ...]
    • 返回值: 成功返回列表的元素個數,失敗返回 0。
  4. RPUSHX

    • 說明: 與 RPUSH 類似,但必須保證 key 存在。
    • 語法: RPUSHX key value
    • 返回值: 成功返回列表的元素個數,失敗返回 0。
  5. LPOP

    • 說明: 返回並移除列表左邊的第一個元素。
    • 語法: LPOP key
    • 返回值: 被刪除的元素。
  6. RPOP

    • 說明: 返回並移除列表右邊的第一個元素。
    • 語法: RPOP key
    • 返回值: 被刪除的元素。
  7. LRANGE

    • 說明: 獲取指定下標區間內的元素。
    • 語法: LRANGE key start stop
    • 示例: LRANGE list 0 -1
  8. LLEN

    • 說明: 獲取列表的元素個數。
    • 語法: LLEN key
  9. LSET

    • 說明: 設定指定索引的值,相當於修改這個位置的值。
    • 語法: LSET key index value
  10. LINDEX

    • 說明: 獲取指定索引位置的元素。
    • 語法: LINDEX key index
  11. LREM

    • 說明: 刪除列表中重複的元素,設定刪幾個,就會刪幾個。
    • 語法: LREM key count value
    • 說明: count 為刪除的數量。
  12. LTRIM

    • 說明: 保留列表中特定區間內的元素,其他元素刪除。
    • 語法: LTRIM key start stop
  13. LINSERT

    • 說明: 在某個元素之前或之後插入新元素。
    • 語法: LINSERT key before|after pivot value

操作 Set 相關 API

  1. SADD

    • 說明: 為集合新增元素。
    • 語法: SADD key member [member ...]
    • 返回值: 新增了的元素個數。
  2. SMEMBERS

    • 說明: 顯示集合中的所有元素(無序)。
    • 語法: SMEMBERS key
  3. SCARD

    • 說明: 返回集合中元素的個數。
    • 語法: SCARD key
  4. SPOP

    • 說明: 隨機返回並刪除集合中的一個元素。
    • 語法: SPOP key
  5. SMOVE

    • 說明: 從一個集合中移動元素到另一個集合,必須是同種型別。
    • 語法: SMOVE source destination member
  6. SREM

    • 說明: 從集合中刪除一個元素。
    • 語法: SREM key member [member ...]
    • 返回值: 刪除的元素個數。
  7. SISMEMBER

    • 說明: 判斷集合中是否含有某個元素。
    • 語法: SISMEMBER key member
    • 返回值: 存在返回 1,不存在返回 0。
  8. SRANDMEMBER

    • 說明: 隨機返回集合中的元素,可以指定返回的個數。
    • 語法: SRANDMEMBER key [count]
  9. SDIFF

    • 說明: 去掉第一個集合中其它集合含有的相同元素。
    • 語法: SDIFF key [key ...]
  10. SINTER

    • 說明: 求集合的交集。
    • 語法: SINTER key [key ...]
  11. SUNION

    • 說明: 求集合的並集。
    • 語法: SUNION key [key ...]

操作 ZSet 相關 API

  1. ZADD

    • 說明: 新增有序集合元素。
    • 語法: ZADD key score member [score member ...]
    • 示例: ZADD zset 2 xiaohu 3 xiaohu2
  2. ZCARD

    • 說明: 返回有序集合的元素個數。
    • 語法: ZCARD key
  3. ZRANGE

    • 說明: 返回有序集合中指定範圍的元素(升序)。
    • 語法: ZRANGE key start stop [WITHSCORES]
  4. ZREVRANGE

    • 說明: 返回有序集合中指定範圍的元素(降序)。
    • 語法: ZREVRANGE key start stop [WITHSCORES]
  5. ZRANGEBYSCORE

    • 說明: 按照分數查詢範圍內的元素。
    • 語法: ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
    • 示例: ZRANGEBYSCORE zset 0 20 WITHSCORES LIMIT 0 2
  6. ZRANK

    • 說明: 返回指定成員的排名(升序)。
    • 語法: ZRANK key member
  7. ZREVRANK

    • 說明: 返回指定成員的排名(降序)。
    • 語法: ZREVRANK key member
  8. ZSCORE

    • 說明: 顯示某個元素的分數。
    • 語法: ZSCORE key member
  9. ZREM

    • 說明: 移除指定成員。
    • 語法: ZREM key member [member ...]
  10. ZINCRBY

    • 說明: 給指定元素增加分數。
    • 語法: ZINCRBY key increment member
    • 說明: 如果需要減分,increment 可以是負數。

操作 Hash 相關 API

  1. HSET

    • 說明: 設定一個或多個 key/value 對。
    • 語法: HSET key field value [field value ...]
  2. HMSET

    • 說明: 設定多個 key/value 對。
    • 語法: HMSET key field value [field value ...]
  3. HSETNX

    • 說明: 設定一個不存在的 key 的值。
    • 語法: HSETNX key field value
    • 返回值: 設定成功返回 1,失敗返回 0。
  4. HGET

    • 說明: 獲取指定 key 對應的值。
    • 語法: HGET key field
  5. HGETALL

    • 說明: 獲取所有 key/value 對。
    • 語法: HGETALL key
  6. HMGET

    • 說明: 獲取多個 key 對應的值。
    • 語法: HMGET key field [field ...]
  7. HDEL

    • 說明: 刪除指定的 key/value 對。
    • 語法: HDEL key field [field ...]
    • 返回值: 刪除成功的個數。
  8. HEXISTS

    • 說明: 判斷某個 key 是否存在。
    • 語法: HEXISTS key field
    • 返回值: 存在返回 1,不存在返回 0。
  9. HKEYS

    • 說明: 獲取所有的 key。
    • 語法: HKEYS key
  10. HVALS

    • 說明: 獲取所有的 value。
    • 語法: HVALS key
  11. HINCRBY

    • 說明: 為指定 key 對應的值進行加法運算(只能針對數值做運算)
    • 語法: HINCRBY key field increment
  12. HINCRBYFLOAT

    • 說明: 為指定 key 對應的值增加浮點數。
    • 語法: HINCRBYFLOAT key field increment

Redis 主從複製

主從複製架構

主從複製主要用於資料冗餘備份,從節點用於資料同步,但無法自動處理主節點故障。

主從複製架構圖

搭建主從複製

  1. 準備工作

    • 建立三個目錄:master, node1, node2。
    • 複製 redis.conf 配置檔案到各目錄:
      cp redis-7.0.0/redis.conf ./master/
      cp redis-7.0.0/redis.conf ./node1/
      cp redis-7.0.0/redis.conf ./node2/
      
  2. 配置檔案修改

    • master
      port 6379
      protected-mode no
      
    • node1
      port 6380
      protected-mode no
      replicaof <masterip> <masterport>  # 例如:replicaof 192.168.40.110 6379
      
    • node2
      port 6381
      protected-mode no
      replicaof <masterip> <masterport>  # 例如:replicaof 192.168.40.110 6379
      
  3. 啟動 Redis 例項

    cd /usr/local/soft/bigdata/redis-install
    redis-server ./master/redis.conf
    redis-server ./node1/redis.conf
    redis-server ./node2/redis.conf
    

相關文章