前言
參考文檔:http://doc.redisfans.com/index.html
本篇主要總結Redis的常用命令,筆者在記錄命令時的格式如下:
- 命令關鍵字:
命令示例
;命令說明;- 命令參數解釋及一些說明;
其中命令關鍵字使用小寫是為了方便記憶,按規范來說應該采用大寫字母。實際中大小寫不區分,大寫小寫Redis都能識別命令。Redis在設置命令時有一些互通的思想,如下:
設置操作有則覆蓋,無則新建。 在設置鍵值對時,若key已經存在,則將新值覆蓋舊值;反之則創建一個新的鍵值對;
索引操作可以負數。 一些 start 和 end 的偏移量可以使用負數。負數偏移量表示從字符串最后開始計數, -1 表示最后一個字符,而 -2 表示倒數第二個位,以此類推;
使用inf表示最值。 inf可以在不知道有序集的最低和最高 score 值的情況下,使用 ZRANGEBYSCORE 這類命令;
文章會根據筆者的學習進度持續更新……
1. Key(鍵)
key為鍵值對的鍵;value為鍵值對的值;[]為可省內容;pattern為給定格式,類比正則式;seconds和timestamp表示時間;timeout表示時間,單位ms;host:port為主機名:端口號;ttl為毫秒值;offset為數字,表示初始下標;count為數字,表示數量;destination為鍵值對的鍵,表示目的鍵;
1.1 鍵的基本操作功能
del move rename renamenx migrate
- del:
DEL key [key ...]
;刪除給定的一個或多個 key; - move:
MOVE key db
;將當前數據庫的 key 移動到給定的數據庫 db 當中; - rename:
RENAME key newkey
;將 key 改名為 newkey; - renamenx:
RENAMENX key newkey
;當且僅當 newkey 不存在時,將 key 改名為 newkey; - migrate:
MIGRATE host port key destination-db timeout [COPY] [REPLACE]
;將 key 原子性地從當前實例傳送到目標實例 host:port 的指定數據庫上,一旦傳送成功, key 保證會出現在目標實例上,而當前實例上的 key 會被刪除;- COPY :不移除源實例上的 key;
- REPLACE :替換目標實例上已存在的 key;
1.2 鍵的獲取功能
type exists randomkey keys
- type:
TYPE key
;返回數據庫鍵對應的類型; - exists:
EXISTS key
;檢查給定 key 是否存在; - randomkey:
RANDOMKEY
;從當前數據庫中隨機返回(不刪除)一個 key ; - keys:
KEYS pattern
;查找所有符合給定模式 pattern 的 key;- KEYS * 匹配數據庫中所有 key;
- KEYS h?llo 匹配 hello , hallo 和 hxllo 等;
- KEYS h*llo 匹配 hllo 和 heeeeello 等;
- KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo;
- 特殊符號用 \ 隔開;
1.3 鍵的排序功能
sort asc/desc/alpha/by/limit/get/store
- sort:
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]
;返回或保存給定列表、集合、有序集合 key 中經過排序的元素。排序默認以數字作為對象,值被解釋為雙精度浮點數,然后進行比較; - sort:
SORT key
;返回鍵值從小到大排序的結果; - sort ... asc:
SORT key ASC
;返回鍵值從小到大排序的結果; - sort ... desc:
SORT key DESC
;返回鍵值從大到小排序的結果; - sort ... alpha:
SORT key ALPHA
;可以對包含字符串的鍵進行排列; - sort ... by ...:
SORT key BY pattern
;可以指定某些字符串鍵,或者某個哈希鍵說包含的某些域來作為權重,對一個鍵排序; - sort ... limit ...:
SORT key LIMIT offset count
;可以讓結果只返回其中部分已排序的元素; - sort ... get ...:
SORT key GET pattern
;可以在鍵被排序后,根據被排序的元素,以及 GET 選項指定的模式,查找並返回某些鍵的值; - sort ... store ...:
SORT key STORE destination
;可以將排序結果保存在指定的鍵里面;
1.4 生存時間的功能
expire pexpire expireat persist ttl pttl
- expire:
EXPIRE key seconds
;將鍵key的生存時間設置為 seconds 秒; - pexpire:
PEXPIRE key milliseconds
;與 EXPIRE 命令的作用類似,將鍵key的生存時間設置為 milliseconds 毫秒; - expireat:
EXPIREAT key timestamp
;將鍵 key 的過期時間設置為 timestamp 所指定的秒數時間戳; - pexpireat:
PEXPIREAT key milliseconds-timestamp
;與 EXPIREAT 命令的作用類似,將鍵 key 的過期時間設置為 milliseconds-timestamp 所指定的毫秒數時間戳; - persist:
PERSIST key
;移除給定 key 的生存時間,將這個 key 從『易失的』(帶生存時間 key )轉換成『持久的』(一個不帶生存時間、永不過期的 key ); - ttl:
TTL key
;以秒為單位,返回給定 key 的剩余生存時間(TTL, time to live); - pttl:
PTTL key
;這個命令類似於 TTL 命令,但它以毫秒為單位返回 key 的剩余生存時間,而不是像 TTL 命令那樣,以秒為單位;
1.5 序列化與反序列化的功能
dump restore
- dump:
DUMP key
;序列化給定 key ,並返回被序列化的值,使用 RESTORE 命令可以將這個值反序列化為 Redis 鍵。序列化生成的值有以下幾個特點:- 它帶有 64 位的校驗和,用於檢測錯誤, RESTORE 在進行反序列化之前會先檢查校驗和;
- 值的編碼格式和 RDB 文件保持一致;
- RDB 版本會被編碼在序列化值當中,如果因為 Redis 的版本不同造成 RDB 格式不兼容,那么 Redis 會拒絕對這個值進行反序列化操作;
- restore:
RESTORE key ttl serialized-value
;反序列化給定的序列化值,並將它和給定的 key 關聯。參數 ttl 以毫秒為單位為 key 設置生存時間;如果 ttl 為 0 ,那么不設置生存時間;
1.6 鍵的迭代遍歷功能
scan
- scan:
SCAN cursor [MATCH pattern] [COUNT count]
;SCAN 命令是一個基於游標的迭代器(cursor based iterator): SCAN 命令每次被調用之后, 都會向用戶返回一個新的游標, 用戶在下次迭代時需要使用這個新游標作為 SCAN 命令的游標參數, 以此來延續之前的迭代過程;- 當 SCAN 命令的游標參數被設置為 0 時, 服務器將開始一次新的迭代;
- 而當服務器向用戶返回值為 0 的游標時, 表示迭代已結束;
1.7 OBJECT命令
refcount ecoding idletime
- object refcount:
OBJECT REFCOUNT key
;返回給定 key 引用所儲存的值的次數。此命令主要用於除錯; - object ecoding:
OBJECT ENCODING key
;查看一個數據庫鍵的值對象編碼; - object idletime:
OBJECT IDLETIME key
;返回給定 key 自儲存以來的空轉時間,單位秒;
2. String(字符串)
key為鍵值對的鍵;value為鍵值對的值;increment為浮點數增量;offset為數字,表示偏移量;start和end為數字,表示索引;destkey表示結果;
2.1 鍵值對的操作功能
set get setnx getset mset mget msetnx setex psetex
- set:
SET key "value"
;設置鍵值對; - get:
GET key
;根據鍵獲取值; - setnx:
SETNX key value
;將 key 的值設為 value ,當且僅當 key 不存在; - getset:
GETSET key value
;將給定 key 的值設為 value ,並返回 key 的舊值(old value); - mset:
MSET key value [key value ...]
;同時設置一個或多個 key-value 對; - mget:
MGET key [key ...]
;返回所有(一個或多個)給定 key 的值value; - msetnx:
MSETNX key value [key value ...]
;同時設置一個或多個 key-value 對,當且僅當所有給定 key 都不存在才成功; - setex:
SETEX key seconds value
;將值 value 關聯到 key ,並將 key 的生存時間設為 seconds (以秒為單位); - psetex:
PSETEX key milliseconds value
;這個命令和 SETEX 命令相似,但它以毫秒為單位設置 key 的生存時間,而不是像 SETEX 命令那樣,以秒為單位;
2.2 獲取與追加的功能
strlen append setrange getrange
- strlen:
STRLEN key
;返回 key 所儲存的字符串值的長度; - append:
APPEND key value
;如果 key 已經存在並且是一個字符串, APPEND 命令將 value 追加到 key 原來的值的末尾; - setrange:
SETRANGE key offset value
;用 value 參數覆寫(overwrite)給定 key 所儲存的字符串值,從偏移量 offset 開始; - getrange:
GETRANGE key [start] [end]
;返回 key 中字符串值的子字符串,字符串的截取范圍由 start 和 end 兩個偏移量決定(包括 start 和 end 在內)(負數偏移量表示從字符串最后開始計數, -1 表示最后一個字符);
2.3 數字與浮點數的操作功能
incrby incr incrbyfloat decrby decr
- incrby:
INCRBY key increment
;將 key 所儲存的整數值加上增量 increment; - incr:
INCR key
;將 key 中儲存的數字值增 1; - incrbyfloat:
INCRBYFLOAT key increment
;為 key 中所儲存的值加上浮點數增量 increment; - decrby:
DECRBY key decrement
;將 key 所儲存的值減去減量 decrement; - decr:
DECR key
;將 key 中儲存的數字值減 1;
2.4 二進制位操作的功能
setbit getbit bitcount bitop
- setbit:
SETBIT key offset value
;對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit); - getbit:
GETBIT key offset
;對 key 所儲存的字符串值,獲取指定偏移量上的位(bit); - bitcount:
BITCOUNT key [start] [end]
;計算給定字符串中,被設置為 1 的比特位的數量; - bitop:
BITOP operation destkey key [key ...]
;對一個或多個保存二進制位的字符串 key 進行位元操作,並將結果保存到 destkey 上(operation 可以是 AND 、 OR 、 NOT 、 XOR 這四種操作中的任意一種);
3. List(列表)
key為鍵值對的鍵;value為鍵值對的值;[]為可省內容,這里表示一個或多個;timeout為數字,表示超時時間;index為數字,表示下標;pivot為某個值;start和stop為區間的下標;count為數字,表示計數器;source和destination為兩個鏈表的key,前者表示來源,后者表示目的;
3.1 添加與修改元素的功能
rpush rpushx lpush lpushx linsert lset
- rpush:
RPUSH key value [value ...]
;將一個或多個值 value 插入到列表 key 的表尾(最右邊),當 key 不存在時,會創建空列表並執行 LPUSH 操作; - rpushx:
RPUSHX key value
;將值 value 插入到列表 key 的表尾,當且僅當 key 存在並且是一個列表時操作成功; - lpush:
LPUSH key value [value ...]
;將一個或多個值 value 插入到列表 key 的表頭(最左邊)。當 key 不存在時,會創建空列表並執行 LPUSH 操作; - lpushx:
LPUSHX key value
;將值 value 插入到列表 key 的表頭,當且僅當 key 存在並且是一個列表時操作成功; - linsert ... before|after:
LINSERT key BEFORE|AFTER pivot value
;將值 value 插入到列表 key 當中,位於值 pivot 之前或之后; - lset:
LSET key index value
;將列表 key 下標為 index 的元素的值設置為 value;
3.2 移除元素的功能
lpop blpop rpop brpop lrem
- lpop:
LPOP key
;移除並返回列表 key 的頭元素; - blpop:
BLPOP key [key ...] timeout
;列表的阻塞式(blocking)彈出原語。當給定多個 key 參數時,按參數 key 的先后順序依次檢查各個列表,彈出第一個非空列表的頭元素; - rpop:
RPOP key
;移除並返回列表 key 的尾元素; - brpop:
BRPOP key [key ...] timeout
;列表的阻塞式(blocking)彈出原語。當給定多個 key 參數時,按參數 key 的先后順序依次檢查各個列表,彈出第一個非空列表的尾部元素; - lrem:
LREM key count value
;根據參數 count 的值,移除列表中與參數 value 相等的元素;- count > 0 : 從表頭開始向表尾搜索,移除與 value 相等的元素,數量為 count;
- count < 0 : 從表尾開始向表頭搜索,移除與 value 相等的元素,數量為 count 的絕對值;
- count = 0 : 移除表中所有與 value 相等的值;
3.3 列表與元素的獲取功能
llen lingex lrange
- llen:
LLEN key
;返回列表 key 的長度; - lingex:
LINDEX key index
;返回列表 key 中,下標為 index 的元素; - lrange:
LRANGE key start stop
;返回列表 key 中指定區間 [start, stop] 內的元素;
3.4 列表的操作功能
ltrim rpoplpush brpoplpush
- ltrim:
LTRIM key start stop
;對一個列表進行修剪(trim),保留區間 [start, stop] 內的元素; - rpoplpush:
RPOPLPUSH source destination
;在一個原子時間內,執行以下兩個動作:- 將列表 source 中的最后一個元素(尾元素)彈出,並返回給客戶端;
- 將 source 彈出的元素插入到列表 destination ,作為 destination 列表的的頭元素;
- brpoplpush:
BRPOPLPUSH source destination timeout
;是 RPOPLPUSH 的阻塞版本;- 當給定列表 source 不為空時, BRPOPLPUSH 的表現和 RPOPLPUSH 一樣;
- 當列表 source 為空時, BRPOPLPUSH 命令將阻塞連接,直到等待超時,或有另一個客戶端對 source 執行 LPUSH 或 RPUSH 命令為止;
4. Hash(哈希表)
key為哈希表;field為鍵值對的鍵,也稱域;value為鍵值對的值;increment為數字,表示增量;
4.1 添加和修改鍵值對的功能
hset mhset hsetnx hincrby hincrbyfloat
- hset:
HSET key field value
;將哈希表 key 中的域 field 的值設為 value; - mhset:
HMSET key field value [field value ...]
;同時將多個 field-value (域-值)對設置到哈希表 key 中; - hsetnx:
HSETNX key field value
;將哈希表 key 中的域 field 的值設置為 value ,當且僅當域 field 不存在。若域 field 已經存在,該操作無效; - hincrby:
HINCRBY key field increment
;為哈希表 key 中的域 field 的值加上整數增量 increment; - hincrbyfloat:
HINCRBYFLOAT key field increment
;為哈希表 key 中的域 field 加上浮點數增量 increment;
4.2 移除鍵值對的功能
hdel
- hdel:
HDEL key field [field ...]
;刪除哈希表 key 中的一個或多個指定域,不存在的域將被忽略;
4.3 鍵值對的獲取功能
hkeys hvals hgetall hexists hget hmget hlen
- hkeys:
HKEYS key
;返回哈希表 key 中的所有域 field; - hvals:
HVALS key
;返回哈希表 key 中所有域的值 value; - hgetall:
HGETALL key
;返回哈希表 key 中,所有的域 field 和值 value; - hexists:
HEXISTS key field
;查看哈希表 key 中,給定域 field 是否存在; - hget:
HGET key field
;返回哈希表 key 中給定域 field 的值; - hmget:
HMGET key field [field ...]
;返回哈希表 key 中,一個或多個給定域的值; - hlen:
HLEN key
;返回哈希表 key 中域的數量;
4.4 哈希表的迭代遍歷功能
hscan
- hscan:
HSCAN key cursor [MATCH pattern] [COUNT count]
;參考《鍵的迭代遍歷功能 scan》;
5. Set(集合)
key為集合的鍵;member為元素;[]為可省內容,這里表示一個或多個;source為源頭集合;destination為目標集合;count為數字;
5.1 添加和修改元素的功能
sadd
- sadd:
SADD key member [member ...]
;將一個或多個 member 元素加入到集合 key 當中,已經存在於集合的 member 元素將被忽略;
5.2 移除元素的功能
spop srem
- spop:
SPOP key
;移除並返回集合中的一個隨機元素; - srem:
SREM key member [member ...]
;移除集合 key 中的一個或多個 member 元素,不存在的 member 元素會被忽略;
5.3 元素的獲取功能
smembers sismember srandmember
- smembers:
SMEMBERS key
;返回集合 key 中的所有成員; - sismember:
SISMEMBER key member
;判斷集合 key 是否包含 member 元素; - srandmember:
SRANDMEMBER key [count]
;如果命令執行時,只提供了 key 參數,那么返回集合中的一個隨機元素;- 如果 count 為正數,且小於集合基數,那么命令返回一個包含 count 個元素的數組,數組中的元素各不相同。如果 count 大於等於集合基數,那么返回整個集合;
- 如果 count 為負數,那么命令返回一個數組,數組中的元素可能會重復出現多次,而數組的長度為 count 的絕對值;
5.4 集合的獲取功能
scard sdiff sdiffstore sinter sinterstore sunion sunionstore
- scard:
SCARD key
;返回集合 key 中元素的數量; - sdiff:
SDIFF key [key ...]
;返回一個集合的全部成員,該集合是所有給定集合之間的差集; - sdiffstore:
SDIFFSTORE destination key [key ...]
;這個命令的作用和 SDIFF 類似,但它將結果保存到 destination 集合,而不是簡單地返回結果集; - sinter:
SINTER key [key ...]
;返回一個集合的全部成員,該集合是所有給定集合的交集; - sinterstore:
SINTERSTORE destination key [key ...]
;這個命令類似於 SINTER 命令,但它將結果保存到 destination 集合,而不是簡單地返回結果集; - sunion:
SUNION key [key ...]
;返回一個集合的全部成員,該集合是所有給定集合的並集; - sunionstore:
SUNIONSTORE destination key [key ...]
;這個命令類似於 SUNION 命令,但它將結果保存到 destination 集合,而不是簡單地返回結果集;
5.5 集合的操作功能
smove
- smove:
SMOVE source destination member
;將 member 元素從 source 集合移動到 destination 集合;
5.6 集合的迭代遍歷功能
sscan
- sscan:
SSCAN key cursor [MATCH pattern] [COUNT count]
;參考《鍵的迭代遍歷功能 scan》;
6. SortedSet(有序集合)
key為鍵值對的鍵;member為元素;score為分數權重值;[]為可省內容,這里表示一個或多個;destination為目標集合;count為數字;min和max表示浮點數范圍區間;start和stop為區間的下標;
6.1 添加和修改元素的功能
zadd zincrby
- zadd:
ZADD key score member [[score member] [score member] ...]
;將一個或多個 member 元素及其 score 值加入到有序集 key 當中; - zincrby:
ZINCRBY key increment member
;為有序集 key 的成員 member 的 score 值加上增量 increment ;
6.2 移除元素的功能
zrem zremrangebyrank zremrangebyscore
- zrem:
ZREM key member [member ...]
;移除有序集 key 中的一個或多個成員,不存在的成員將被忽略; - zremrangebyrank:
ZREMRANGEBYRANK key start stop
;移除有序集 key 中,指定下標排名(rank)區間 [start, stop] 內的所有成員; - zremrangebyscore:
ZREMRANGEBYSCORE key min max
;移除有序集 key 中,所有 score 值介於 [min, max] 之間;
6.3 元素的獲取功能
zrange zrevrange zrangebyscore zrevrangebyscore zrank zrevrank zscore
- zrange:
ZRANGE key start stop [WITHSCORES]
;返回有序集 key 中,指定下標區間 [start, stop] 內的元素。其中成員的位置按 score 值遞增(從小到大)來排序; - zrevrange:
ZREVRANGE key start stop [WITHSCORES]
;返回有序集 key 中,指定區間 [start, stop] 內的元素。其中成員的位置按 score 值遞減(從大到小)來排列; - zrangebyscore:
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
;返回有序集 key 中,所有 score 值介於 [min, max] 之間的成員有序集成員按 score 值遞增(從小到大)次序排列;- WITHSCORES 參數決定結果集是單單返回有序集的成員,還是將有序集成員及其 score 值一起返回;
- 可以使用
(min
或(max
來指定開區間;
- zrangebyscore ... -inf +inf:
ZRANGEBYSCORE key -inf +inf
;顯示整個有序集;- 相當於min取負無窮,max取正無窮,inf可以在不知道有序集的最低和最高 score 值的情況下,使用 ZRANGEBYSCORE 這類命令;
- zrevrangebyscore:
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
;返回有序集 key 中, score 值介於 [min, max] 之間的所有的成員。有序集成員按 score 值遞減(從大到小)的次序排列;- 其他類似同上;
- zrank:
ZRANK key member
;返回有序集 key 中元素的排名 rank。其中有序集成員按 score 值遞增(從小到大)順序排列; - zrevrank:
ZREVRANK key member
;返回有序集 key 中元素的排名 rank。其中有序集成員按 score 值遞減(從大到小)排序; - zscore:
ZSCORE key member
;返回有序集 key 中,成員 member 的 score 值;
6.4 集合的獲取功能
zcard zcount zunionstore zinterstore
- zcard:
ZCARD key
;返回集合 key 中元素的數量; - zcount:
ZCOUNT key min max
;返回有序集 key 中, score 值在 min 和 max 之間(默認包括 score 值等於 min 或 max )的成員的數量; - zunionstore:
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
;計算給定的一個或多個有序集的並集,其中給定 key 的數量必須以 numkeys 參數指定,並將該並集(結果集)儲存到 destination 。- 默認情況下,結果集中某個成員的 score 值是所有給定集下該成員 score 值之和;
- WEIGHTS表示乘法因子,默認為1,並集后的元素的分值 score 為 score*weight;
- AGGREGATE可以指定並集的結果集的聚合方式;
- zinterstore:
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
;計算給定的一個或多個有序集的交集,其中給定 key 的數量必須以 numkeys 參數指定,並將該交集(結果集)儲存到 destination ;- 類似性質同上;
6.5 集合的迭代遍歷功能
zscan
- zscan:
ZSCAN key cursor [MATCH pattern] [COUNT count]
;參考《鍵的迭代遍歷功能 scan》;
7. Pub/Sub(發布/訂閱)
channel表示頻道名;pattern為一個通配符,表示模式名;message表示消息;
7.1 頻道的訂閱與退訂
subscribe unsubscribe
- subscribe:
SUBSCRIBE channel [channel ...]
;訂閱給定的一個或多個頻道的信息; - subscribe:
SUBSCRIBE channel:message
;關注 “某個鍵執行了什么命令”,返回鍵空間通知; - subscribe:
SUBSCRIBE channel:del
;關注 “某個命令被什么鍵執行了”,返回鍵事件通知; - unsubscribe:
UNSUBSCRIBE [channel [channel ...]]
;退訂給定的頻道;
7.2 模式的訂閱與退訂
psubscribe punsubscribe
- psubscribe:
PSUBSCRIBE pattern [pattern ...]
;訂閱一個或多個符合給定模式的頻道。以 /* 作為匹配符; - punsubscribe:
PUNSUBSCRIBE [pattern [pattern ...]]
;退訂所有給定模式;
7.3 發送消息
publish
- publish:
PUBLISH channel message
;信息 message 發送到指定的頻道 channel ;
7.4 查看訂閱信息
pubsub channels/numsub/bumpat
- pubsub channels:
PUBSUB CHANNELS [pattern]
;列出當前的活躍頻道。給出 pattern 參數,那么只列出和給定模式 pattern 相匹配的那些活躍頻道; - pubsub numsub:
PUBSUB NUMSUB [channel-1 ... channel-N]
;返回給定頻道的訂閱者數量, 訂閱模式的客戶端不計算在內。; - pubsub bumpat:
PUBSUB NUMPAT
;返回訂閱模式的數量;
8. Transaction(事務)
key為鍵值對的鍵;
watch unwatch multi exec discard
- watch:
WATCH key [key ...]
;監視一個(或多個) key ,如果在事務執行之前這個(或這些) key 被其他命令所改動,那么事務將被打斷; - unwatch:
UNWATCH
;取消 WATCH 命令對所有 key 的監視; - multi:
MULTI
;標記一個事務塊的開始; - exec:
EXEC
;執行所有事務塊內的命令。事務成功與否與 WATCH 命令相關; - discard:
DISCARD
;取消事務,放棄執行事務塊內的所有命令;
9. Script(腳本)
sha1表示校驗碼;script表示腳本;numkeys為數字,表示參數個數; arg表示參數;
9.1 校驗相關
eval evalsha
- eval:
EVAL script numkeys key [key ...] arg [arg ...]
;對 Lua 腳本進行求值; - evalsha:
EVALSHA sha1 numkeys key [key ...] arg [arg ...]
;根據給定的 sha1 校驗碼,對緩存在服務器中的腳本進行求值;
9.2 SCRIPT 命令
script exists/flush/kill/load
- script exists:
SCRIPT EXISTS script [script ...]
;給定一個或多個腳本的 SHA1 校驗和,返回一個包含 0 和 1 的列表,表示校驗和所指定的腳本是否已經被保存在緩存當中; - script flush:
SCRIPT FLUSH
;清除所有 Lua 腳本緩存; - script kill:
SCRIPT KILL
;殺死當前正在運行的 Lua 腳本,當且僅當這個腳本沒有執行過任何寫操作時,這個命令才生效; - script load:
SCRIPT LOAD
;將腳本 script 添加到腳本緩存中,但並不立即執行這個腳本;
10. Connection(連接)
password表示密碼;message表示信息;index為數字,表示下標;
select ping quit auth echo
- select:
SELECT index
;切換到指定的數據庫,數據庫索引號 index 用數字值指定,以 0 作為起始索引值; - ping:
PING
;使用客戶端向 Redis 服務器發送一個 PING ,如果服務器運作正常的話,會返回一個 PONG。通常用於測試與服務器的連接是否仍然生效,或者用於測量延遲值; - quit:
QUIT
;請求服務器關閉與當前客戶端的連接; - auth:
AUTH password
;鍵入密碼。通過設置配置文件中 requirepass 項的值(使用命令 CONFIG SET requirepass password ),可以使用密碼來保護 Redis 服務器; - echo:
ECHO message
;打印一個特定的信息 message ,測試時使用;
11. Server(服務器)
section為可選參數;connection-name為字符串,表示當前連接的名字;ip表示IP地址;port表示端口號;parameter表示配置;value表示配置的參數;argument表示參數;
11.1 服務器的獲取功能
dbsize time lastsave monitor
- dbsize:
DBSIZE
;返回當前數據庫的 key 的數量; - time:
TIME
;返回當前服務器時間; - lastsave:
LASTSAVE
;返回最近一次 Redis 成功將數據保存到磁盤上的時間,以 UNIX 時間戳格式表示; - monitor:
MONITOR
;實時打印出 Redis 服務器接收到的命令,調試用;
11.2 服務器的操作的功能
flushdb flushall shutdown salveof
- flushdb:
FLUSHDB
;清空當前數據庫中的所有 key; - flushall:
FLUSHALL
;清空整個 Redis 服務器的數據(刪除所有數據庫的所有 key)。此命令從不失敗; - shutdown:
SHUTDOWN
;停止所有客戶端;如果有至少一個保存點在等待,執行 SAVE 命令;如果 AOF 選項被打開,更新 AOF 文件;關閉 redis 服務器; - slaveof:
SLAVEOF ip port
;在 Redis 運行時動態地修改復制(replication)功能的行為。可以將當前服務器轉變為指定服務器的從屬服務器; - slaveof no one:
SLAVEOF NO ONE
;使得這個從屬服務器關閉復制功能,並從從屬服務器轉變回主服務器,原來同步所得的數據集不會被丟棄; - sync:
SYNC
;用於復制功能(replication)的內部命令; - psync:
PSYNC <MASTER_RUN_ID> <OFFSET>
;用於復制功能(replication)的內部命令;
11.3 服務器持久化相關
save bgsave bgrewriteaof
- save:
SAVE
;執行一個同步保存操作,將當前 Redis 實例的所有數據快照以 RDB 文件的形式保存到硬盤; - bgsave:
BGSAVE
;在后台異步(Asynchronously)保存當前數據庫的數據到磁盤; - bgrewriteaof:
BGREWRITEAOF
;AOF 文件后台重寫;
11.4 客戶端相關操作
client list/setname/getname/kill
- client list:
CLIENT LIST
;以易讀的格式,返回所有連接到服務器的客戶端信息和統計數據; - client setname:
CLIENT SETNAME connection-name
;為當前連接分配一個名字; - client getname:
CLIENT GETNAME
;返回 CLIENT SETNAME 命令為連接設置的名字; - client kill:
CLIENT KILL ip:port
;關閉地址為 ip:port 的客戶端;
11.5 服務器的配置參數相關
config set/get/rewrite/resetstat
- config set:
CONFIG SET parameter value
;動態地調整 Redis 服務器的配置(configuration)而無須重啟; - config get:
CONFIG GET parameter
;取得運行中的 Redis 服務器的配置參數(; - config rewrite:
CONFIG REWRITE
;對啟動 Redis 服務器時所指定的 redis.conf 文件進行改寫。通過盡可能少的修改, 將服務器當前所使用的配置記錄到 redis.conf 文件中; - config resetstat:
CONFIG RESETSTAT
;重置 INFO 命令中的某些統計數據;
11.6 Slow log 慢查詢日志相關
slowlog get/len/reset
- slowlog:
SLOWLOG subcommand [argument]
;用來記錄查詢執行時間的日志系統; - slowlog:
SLOWLOG GET [number]
;打印所有 slow log ,最大長度取決於 slowlog-max-len 選項的值; - slowlog:
SLOWLOG GET number
;打印指定數量的日志; - slowlog:
SLOWLOG LEN
;查看當前日志的數量; - reset:
SLOWLOG RESET
;清除所有慢查詢日志;
11.7 獲取Redis服務器的各種信息和統計數值
info
- info:
INFO [section]
;以一種易於解釋(parse)且易於閱讀的格式,返回關於 Redis 服務器的各種信息和統計數值。可選參數section
如下:server
: 一般 Redis 服務器信息,包含以下域:- redis_version : Redis 服務器版本;
- redis_git_sha1 : Git SHA1;
- redis_git_dirty : Git dirty flag;
- os : Redis 服務器的宿主操作系統;
- arch_bits : 架構(32 或 64 位);
- multiplexing_api : Redis 所使用的事件處理機制;
- gcc_version : 編譯 Redis 時所使用的 GCC 版本;
- process_id : 服務器進程的 PID;
- run_id : Redis 服務器的隨機標識符(用於 Sentinel 和集群);
- tcp_port : TCP/IP 監聽端口;
- uptime_in_seconds : 自 Redis 服務器啟動以來,經過的秒數;
- uptime_in_days : 自 Redis 服務器啟動以來,經過的天數;
- lru_clock : 以分鍾為單位進行自增的時鍾,用於 LRU 管理;
clients
: 已連接客戶端信息,包含以下域:- connected_clients : 已連接客戶端的數量(不包括通過從屬服務器連接的客戶端);
- client_longest_output_list : 當前連接的客戶端當中,最長的輸出列表;
- client_longest_input_buf : 當前連接的客戶端當中,最大輸入緩存;
- blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客戶端的數量
memory
: 內存信息,包含以下域:- used_memory : 由 Redis 分配器分配的內存總量,以字節(byte)為單位;
- used_memory_human : 以人類可讀的格式返回 Redis 分配的內存總量;
- used_memory_rss : 從操作系統的角度,返回 Redis 已分配的內存總量(俗稱常駐集大小)。這個值和 top 、 ps 等命令的輸出一致;
- used_memory_peak : Redis 的內存消耗峰值(以字節為單位);
- used_memory_peak_human : 以人類可讀的格式返回 Redis 的內存消耗峰值;
- used_memory_lua : Lua 引擎所使用的內存大小(以字節為單位);
- mem_fragmentation_ratio : used_memory_rss 和 used_memory 之間的比率;
- mem_allocator : 在編譯時指定的, Redis 所使用的內存分配器。可以是 libc 、 jemalloc 或者 tcmalloc;
persistence
: RDB 和 AOF 的相關信息;stats
: 一般統計信息;replication
: 主/從復制信息;cpu
: CPU 計算量統計信息;commandstats
: Redis 命令統計信息;cluster
: Redis 集群信息;keyspace
: 數據庫相關的統計信息;all
: 返回所有信息;default
: 返回默認選擇的信息;
最后
