寫在前面
今天繼續學習後面的知識。
Redis 操作命令
操作 List 相關 API
-
LPUSH
- 說明: 將某個值加入到一個 key 列表的頭部。當列表不存在時會建立。
- 語法:
LPUSH key value [value ...]
- 返回值: 成功返回列表的元素個數,失敗返回 0。
-
LPUSHX
- 說明: 與 LPUSH 類似,但必須保證 key 存在。
- 語法:
LPUSHX key value
- 返回值: 成功返回列表的元素個數,失敗返回 0。
-
RPUSH
- 說明: 將某個值加入到一個 key 列表的末尾。
- 語法:
RPUSH key value [value ...]
- 返回值: 成功返回列表的元素個數,失敗返回 0。
-
RPUSHX
- 說明: 與 RPUSH 類似,但必須保證 key 存在。
- 語法:
RPUSHX key value
- 返回值: 成功返回列表的元素個數,失敗返回 0。
-
LPOP
- 說明: 返回並移除列表左邊的第一個元素。
- 語法:
LPOP key
- 返回值: 被刪除的元素。
-
RPOP
- 說明: 返回並移除列表右邊的第一個元素。
- 語法:
RPOP key
- 返回值: 被刪除的元素。
-
LRANGE
- 說明: 獲取指定下標區間內的元素。
- 語法:
LRANGE key start stop
- 示例:
LRANGE list 0 -1
-
LLEN
- 說明: 獲取列表的元素個數。
- 語法:
LLEN key
-
LSET
- 說明: 設定指定索引的值,相當於修改這個位置的值。
- 語法:
LSET key index value
-
LINDEX
- 說明: 獲取指定索引位置的元素。
- 語法:
LINDEX key index
-
LREM
- 說明: 刪除列表中重複的元素,設定刪幾個,就會刪幾個。
- 語法:
LREM key count value
- 說明:
count
為刪除的數量。
-
LTRIM
- 說明: 保留列表中特定區間內的元素,其他元素刪除。
- 語法:
LTRIM key start stop
-
LINSERT
- 說明: 在某個元素之前或之後插入新元素。
- 語法:
LINSERT key before|after pivot value
操作 Set 相關 API
-
SADD
- 說明: 為集合新增元素。
- 語法:
SADD key member [member ...]
- 返回值: 新增了的元素個數。
-
SMEMBERS
- 說明: 顯示集合中的所有元素(無序)。
- 語法:
SMEMBERS key
-
SCARD
- 說明: 返回集合中元素的個數。
- 語法:
SCARD key
-
SPOP
- 說明: 隨機返回並刪除集合中的一個元素。
- 語法:
SPOP key
-
SMOVE
- 說明: 從一個集合中移動元素到另一個集合,必須是同種型別。
- 語法:
SMOVE source destination member
-
SREM
- 說明: 從集合中刪除一個元素。
- 語法:
SREM key member [member ...]
- 返回值: 刪除的元素個數。
-
SISMEMBER
- 說明: 判斷集合中是否含有某個元素。
- 語法:
SISMEMBER key member
- 返回值: 存在返回 1,不存在返回 0。
-
SRANDMEMBER
- 說明: 隨機返回集合中的元素,可以指定返回的個數。
- 語法:
SRANDMEMBER key [count]
-
SDIFF
- 說明: 去掉第一個集合中其它集合含有的相同元素。
- 語法:
SDIFF key [key ...]
-
SINTER
- 說明: 求集合的交集。
- 語法:
SINTER key [key ...]
-
SUNION
- 說明: 求集合的並集。
- 語法:
SUNION key [key ...]
操作 ZSet 相關 API
-
ZADD
- 說明: 新增有序集合元素。
- 語法:
ZADD key score member [score member ...]
- 示例:
ZADD zset 2 xiaohu 3 xiaohu2
-
ZCARD
- 說明: 返回有序集合的元素個數。
- 語法:
ZCARD key
-
ZRANGE
- 說明: 返回有序集合中指定範圍的元素(升序)。
- 語法:
ZRANGE key start stop [WITHSCORES]
-
ZREVRANGE
- 說明: 返回有序集合中指定範圍的元素(降序)。
- 語法:
ZREVRANGE key start stop [WITHSCORES]
-
ZRANGEBYSCORE
- 說明: 按照分數查詢範圍內的元素。
- 語法:
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
- 示例:
ZRANGEBYSCORE zset 0 20 WITHSCORES LIMIT 0 2
-
ZRANK
- 說明: 返回指定成員的排名(升序)。
- 語法:
ZRANK key member
-
ZREVRANK
- 說明: 返回指定成員的排名(降序)。
- 語法:
ZREVRANK key member
-
ZSCORE
- 說明: 顯示某個元素的分數。
- 語法:
ZSCORE key member
-
ZREM
- 說明: 移除指定成員。
- 語法:
ZREM key member [member ...]
-
ZINCRBY
- 說明: 給指定元素增加分數。
- 語法:
ZINCRBY key increment member
- 說明: 如果需要減分,
increment
可以是負數。
操作 Hash 相關 API
-
HSET
- 說明: 設定一個或多個 key/value 對。
- 語法:
HSET key field value [field value ...]
-
HMSET
- 說明: 設定多個 key/value 對。
- 語法:
HMSET key field value [field value ...]
-
HSETNX
- 說明: 設定一個不存在的 key 的值。
- 語法:
HSETNX key field value
- 返回值: 設定成功返回 1,失敗返回 0。
-
HGET
- 說明: 獲取指定 key 對應的值。
- 語法:
HGET key field
-
HGETALL
- 說明: 獲取所有 key/value 對。
- 語法:
HGETALL key
-
HMGET
- 說明: 獲取多個 key 對應的值。
- 語法:
HMGET key field [field ...]
-
HDEL
- 說明: 刪除指定的 key/value 對。
- 語法:
HDEL key field [field ...]
- 返回值: 刪除成功的個數。
-
HEXISTS
- 說明: 判斷某個 key 是否存在。
- 語法:
HEXISTS key field
- 返回值: 存在返回 1,不存在返回 0。
-
HKEYS
- 說明: 獲取所有的 key。
- 語法:
HKEYS key
-
HVALS
- 說明: 獲取所有的 value。
- 語法:
HVALS key
-
HINCRBY
- 說明: 為指定 key 對應的值進行加法運算(只能針對數值做運算)
- 語法:
HINCRBY key field increment
-
HINCRBYFLOAT
- 說明: 為指定 key 對應的值增加浮點數。
- 語法:
HINCRBYFLOAT key field increment
Redis 主從複製
主從複製架構
主從複製主要用於資料冗餘備份,從節點用於資料同步,但無法自動處理主節點故障。
主從複製架構圖
搭建主從複製
-
準備工作
- 建立三個目錄: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/
-
配置檔案修改
- 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
- master
-
啟動 Redis 例項
cd /usr/local/soft/bigdata/redis-install redis-server ./master/redis.conf redis-server ./node1/redis.conf redis-server ./node2/redis.conf