注意:括號裏是參數,具體使用的時候不須要括號和逗號,直接使用空格分隔命令以及各個參數便可。mysql
exists(key):確認一個key是否存在。存在返回1,不存在返回0。redis
del(key):刪除一個 key。key 存在返回1,不存在返回0。算法
expire(key, seconds):爲給定 key 設置過時時間,以秒計。key 存在返回1,不存在返回0。sql
expireat(key, seconds-timestamp):爲給定 key 設置過時時間。以秒計,時間參數是 unix 時間戳。key 存在返回1,不存在返回0。(不清楚)mongodb
pexpire(key, milliseconds):爲給定 key 設置過時時間,以毫秒計。key 存在返回1,不存在返回0。數據庫
pexpireat(key, milliseconds-timestamp):爲給定 key 設置過時時間。以毫秒計,時間參數是 unix 時間戳。key 存在返回1,不存在返回0。(不清楚)數組
ttl(key):以秒爲單位返回 key 的剩餘生存時間。永久 key 的返回-1。緩存
pttl(key):以毫秒爲單位返回 key 的剩餘生存時間。永久 key 的返回-1。服務器
persist(key):移除 key 的過時時間,key 將持久保持。app
keys(pattern):返回全部符合給定模式( pattern)的 key 。
move(key, dbindex):將當前數據庫中的 key 轉移到 dbindex 數據庫,dbindex 爲0到15。
rename(oldname, newname):將 key 由 oldname 重命名爲 newname。若 newname 的 key 存在則刪除 newname 表示的 key,而後再將 key 由 oldname 重命名爲 newname。
rnamenx(oldname, newname):將 key 由 oldname 重命名爲 newname。若 newname 的 key 存在則不作操做。
type(key):返回 key 所儲存的值的類型。
dump(key):序列化給定 key ,並返回被序列化的值。(不清楚)
randomkey:從當前數據庫中隨機返回一個 key。
set(key, value):給名稱爲 key 的 string 賦予值 value。
get(key):返回名稱爲 key 的 string 的 value。
substr(key, start, end):返回名稱爲 key 的 string 的子字符串(start 到 end 之間,包括 start 和 end),start 和 end 爲字符索引,從0開始。
getrange(key, start, end):返回名稱爲 key 的 string 的子字符串(start 到 end 之間,包括 start 和 end),start 和 end 爲字符索引,從0開始。
getset(key, value):將給定 key 的值設爲 value ,並返回 key 的舊值(old value)。
mset(key1, value1, key2, value2, …, keyN, valueN):同時給多個 string 賦值,名稱爲 key i 的 string 賦值 value i。
mget(key1, key2,…, keyN):返回名稱爲 key1 到 keyN 的 string 的 value。
setex(key, seconds, value):給名稱爲 key 的 string 賦予值 value。同時設定過時時間 seconds,以秒計。
psetex(key, milliseconds, value):給名稱爲 key 的 string 賦予值 value。同時設定過時時間 milliseconds,以毫秒計。
setnx(key, value):若是不存在名稱爲 key 的 string,則向庫中添加 string,名稱爲 key,值爲 value。key 存在則不添加。
msetnx(key1, value1, key2, value2, …, keyN, valueN):同時設置一個或多個 key-value 對,當且僅當全部給定 key 都不存在。只要有一個 key 存在,全部的 key 都不會設置。
strlen(key):返回 key 所儲存的字符串值 value 的長度。
incr(key):名稱爲 key 的 value 增1操做。該 value 必須爲整數,不然報錯。
incrby(key, integer):名稱爲 key 的 value 增長 integer。該 value 必須爲整數,不然報錯。
incrbyfloat(key, float):名稱爲 key 的 value 增長 float。該 value 必須爲數字,不然報錯。這個主要是能添加浮點量。
decr(key):名稱爲 key 的 value 減1操做。該 value 必須爲整數,不然報錯。
decrby(key, integer):名稱爲 key 的 value 減小 integer。該 value 必須爲整數,不然報錯。
append(key, value):名稱爲 key 的 string 的值末尾附加 value。返回新 value 字符串的長度。
有序可重複
rpush(key, value1, ..., valueN):在名稱爲 key 的 list 尾添加值爲 value1 到 valueN 的元素。
lpush(key, value1, ..., valueN):在名稱爲 key 的 list 頭添加值爲 value1 到 valueN 的元素。
rpushx(key, value):爲已存在的列表 key 尾部添加 value,返回添加後列表的長度。不存在則不添加,返回0。
lpushx(key, value):爲已存在的列表 key 頭部添加 value,返回添加後列表的長度。不存在則不添加,返回0。
linsert(key, before|after, pivot, value):在名稱爲 key 的 list 指定元素 pivot 的前面或者後面插入元素 value。若是指定元素 pivot 不存在,則返回-1,存在則返回插入元素後列表的總元素個數。
llen(key):返回名稱爲 key 的 list 的長度。
lrange(key, start, end):返回名稱爲 key 的 list 中 start 至 end 之間的元素(包括 start 和 end,下標從0開始。下同)。
ltrim(key, start, end):截取名稱爲 key 的 list,保留 start 至 end 之間的元素,對原列表進行了修改。
lindex(key, index):返回名稱爲 key 的 list 中 index 位置的元素。
lset(key, index, value):給名稱爲 key 的 list 中 index 位置的元素賦值爲 value,index 必須爲列表中已有的下標。
lrem(key, count, value):在名稱爲 key 的 list 中 刪除 count 個值爲 value 的元素。count 爲 0,刪除全部值爲value的元素,count > 0 從頭到尾刪除 count 個值爲 value 的元素,count < 0 從尾到頭刪除 |count| 個值爲 value 的元素。
lpop(key):返回並刪除名稱爲 key 的 list 中的首元素。也就是將該列表中第一個元素返回,而且在列表中刪除該元素。
rpop(key):返回並刪除名稱爲 key 的 list 中的尾元素。也就是將該列表中最後一個元素返回,而且在列表中刪除該元素。
blpop(key1, key2, …, keyN, timeout):lpop 命令的 block 版本。即當 timeout 爲 0 時,若遇到名稱爲 key i 的 list 不存在或該 list 爲空,則命令結束。若是 timeout > 0,則遇到上述狀況時,等待 timeout 秒,若是問題沒有解決,則對 key i+1 開始的 list 執行 lpop 操做。
brpop(key1, key2,… keyN, timeout):rpop 命令的 block 版本。參考上一命令。
rpoplpush(srckey, dstkey):返回並刪除名稱爲 srckey 的 list 的尾元素,並將該元素添加到名稱爲 dstkey 的 list 的頭部。
brpoplpush(srckey, dstkey, timeout):返回並刪除名稱爲 srckey 的 list 的尾元素,並將該元素添加到名稱爲 dstkey 的 list 的頭部。 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
無序不可重複
sadd(key, member1, ..., memberN):向名稱爲 key 的 set 中添加元素 member1 到 memberN。
srem(key, member1, ..., memberN):刪除名稱爲 key 的 set 中的元素 member1 到 memberN。
srandmember(key, count):隨機返回名稱爲 key 的 set 的一個或多個(count)元素。不寫 count 時默認爲1。
spop(key):隨機返回並刪除名稱爲 key 的 set 中一個元素。
scard(key):返回名稱爲 key 的 set 的元素個數。
smembers(key):返回名稱爲 key 的 set 的全部元素。
smove(srckey, dstkey, member):將 member 元素從名稱爲 srckey 的 set 集合移到名稱爲 dstkey 的 set 集合。
sismember(key, member):測試 member 是不是名稱爲 key 的 set 的元素,是的話返回1,不是的話返回0。
sinter(key1, key2, …, keyN):返回名稱爲key1 到 keyN 的 set 集合的交集。
sinterstore(dstkey, key1, key2, …, keyN):求名稱爲key1 到 keyN 的 set 集合的交集並將交集保存到名稱爲 dstkey 的 set 集合。返回交集元素的個數。
sunion(key1, key2, …, keyN):返回名稱爲key1 到 keyN 的 set 集合的並集。
sunionstore(dstkey, key1, key2, …, keyN):求名稱爲key1 到 keyN 的 set 集合的並集並將並集保存到名稱爲 dstkey 的 set 集合。返回並集元素的個數。
sdiff(key1, key2, …, keyN):返回名稱爲key1 到 keyN 的 set 集合的差集。
sdiffstore(dstkey, key1, key2, …, keyN) :求名稱爲key1 到 keyN 的 set 集合的差集並將差集保存到名稱爲 dstkey 的 set 集合。返回差集元素的個數。
有序不可重複(sorted set)
zadd(key, score1, member1, ..., scoreN, memberN):向名稱爲 key 的 zset 中添加元素 member1 到 memberN。若是該元素已經存在,則該元素的 score 更新爲新的score。(score用於排序,爲數字),返回新加元素的個數。
zincrby(key, increment, member):向名稱爲 key 的 zset 中添加元素 member,其 score 值爲 increment,返回 score。若是該元素已經存在,則該元素的 score 增長 increment,返回更新後的 score。
zrem(key, member1, ... memberN):刪除名稱爲 key 的 zset 中的元素 member1 到 memberN。
zcard(key):返回名稱爲 key 的 zset 元素的個數。
zscore(key, element):返回名稱爲 key 的 zset 中元素 element 的 score。元素不存在返回 null。
zcount(key, min, max):計算名稱爲 key 的 zset 中 score >= min 且 score <= max 的全部元素的總數。
zrank(key, member):返回名稱爲 key 的 zset(元素已按 score 從小到大排序)中 member 元素的 rank(即 index,從0開始),若沒有 member 元素,返回 null。
zrevrank(key, member):返回名稱爲 key 的 zset(元素已按 score 從大到小排序)中 member 元素的 rank(即 index,從0開始),若沒有 member 元素,返回 null。
zrange(key, start, end):返回名稱爲 key 的 zset(元素已按 score 從小到大排序)中的 index 從 start 到 end 的全部元素。
zrevrange(key, start, end):返回名稱爲 key 的 zset(元素已按 score 從大到小排序)中的 index 從 start 到 end 的全部元素。
zrangebyscore(key, min, max):返回名稱爲 key 的 zset 中 score >= min 且 score <= max 的全部元素。
zremrangebyrank(key, min, max):刪除名稱爲 key 的 zset(元素已按 score 從小到大排序) 中 rank >= min 且 rank <= max 的全部元素。
zremrangebyscore(key, min, max):刪除名稱爲 key 的 zset 中 score >= min 且 score <= max 的全部元素。
zunionstore / zinterstore(dstkeyN, key1, …, keyN, WEIGHTS w1, …, wN, AGGREGATE SUM|MIN|MAX):對 N 個 zset 求並集/交集,並將最後的集合保存在 dstkeyN 中。對於集合中每個元素的 score,在進行 AGGREGATE 運算前,都要乘以對應的 WEIGHTS 參數。若是沒有提供WEIGHTS,默認爲1。默認的 AGGREGATE 是 SUM,即結果集合中元素的 score 是全部集合對應元素進行 SUM 運算的值,而 MIN 和 MAX 是指結果集合中元素的 score 是全部集合對應元素中最小值和最大值。
hset(key, field, value):向名稱爲 key 的 hash 中添加元素 field<—>value。
hget(key, field):返回名稱爲 key 的 hash 中 field 對應的 value。
hsetnx(key, field, value):在名稱爲 key 的 hash 中若是不存指定的 field,則添加元素 field<—>value。反之不添加。
hmset(key, field1, value1, …, fieldN, valueN):向名稱爲 key 的 hash 中添加元素 field1<—>value1 到 fieldN<—>valueN。
hmget(key, field1, …, fieldN):返回名稱爲 key 的 hash 中 field1 到 findN 對應的value。
hincrby(key, field, integer):將名稱爲 key 的 hash 中 field 的 value 增長 integer,注意 value 類型必須爲 integer。
hincrbyfloat(key, field, float):將名稱爲 key 的 hash 中 field 的 value 增長 float,注意 value 類型必須爲數字。和上面的區別是能增長浮點量。
hexists(key, field):判斷名稱爲 key 的 hash 中是否存在鍵爲 field 的域,返回 0 或者 1。
hdel(key, field):刪除名稱爲 key 的 hash 中鍵爲 field 的域,返回刪除的數量。
hlen(key):返回名稱爲 key 的 hash 中元素個數。
hkeys(key):返回名稱爲 key 的 hash 中全部鍵 field。
hvals(key):返回名稱爲 key 的 hash 中全部值 value。
hgetall(key):返回名稱爲 key 的 hash 中全部的鍵 field 及其對應的值 value。
描述
Redis 在 2.8.9 版本添加了 HyperLogLog 結構。
Redis HyperLogLog 是用來作基數統計的算法,HyperLogLog 的優勢是,在輸入元素的數量或者體積很是很是大時,計算基數所需的空間老是固定 的、而且是很小的。
在 Redis 裏面,每一個 HyperLogLog 鍵只須要花費 12 KB 內存,就能夠計算接近 2^64 個不一樣元素的基 數。這和計算基數時,元素越多耗費內存就越多的集合造成鮮明對比。可是,由於 HyperLogLog 只會根據輸入元素來計算基數,而不會儲存輸入元素自己,因此 HyperLogLog 不能像集合那樣,返回輸入的各個元素。
命令
pfadd(key, element1, ..., elementN):添加指定元素到 HyperLogLog 中。
l-zcgredis5:1>pfadd runoobkey "redis" "mongodb" "mysql" "1"
l-zcgredis5:1>pfadd runoobkey1 "redis" "mongodb" "mysql" "mysql" "1"
pfcount(key1, ..., keyN):返回給定的 HyperLogLog 的基數估算值。
l-zcgredis5:1>pfcount runoobkey1 runoobkey "3"
pfmerge(destkey, sourcekey1, ..., sourcekeyN):將多個 HyperLogLog 合併爲一個 HyperLogLog。
l-zcgredis5:1>pfmerge myhll runoobkey runoobkey1 "OK"
psubscribe(pattern1, ..., patternN):訂閱一個或者多個給定模式的頻道。
punsubscribe(pattern1, ..., patternN):退訂全部給定模式的頻道。
subscribe(channel1, ..., channelN):訂閱給定的一個或多個頻道。
unsubscribe(channel1, ..., channelN):退訂給定的一個或多個頻道。
pubsub(subcommand, argument):查看訂閱與發佈系統狀態。
publish(channel, message):將信息發送到指定的頻道。
描述
Redis 事務能夠一次執行多個命令, 而且帶有如下兩個重要的保證:
一個事務從開始到執行會經歷如下三個階段:
單個 Redis 命令的執行是原子性的,但 Redis 沒有在事務上增長任何維持原子性的機制,因此 Redis 事務的執行並非原子性的。
事務能夠理解爲一個打包的批量執行腳本,但批量指令並不是原子化的操做,中間某條指令的失敗不會致使前面已作指令的回滾,也不會形成後續的指令不作。
命令
discard:取消事務,放棄執行事務塊內的全部命令。
exec:執行全部事務塊內的命令。
multi:標記一個事務塊的開始。
unwatch:取消 WATCH 命令對全部 key 的監視。
watch(key1, ..., keyN):監視一個(或多個) key ,若是在事務執行以前這個(或這些) key 被其餘命令所改動,那麼事務將被打斷。
示例
若是在 set b 處失敗,set a 已成功不會回滾,set c 還會繼續執行。
l-zcgredis5:1>multi "OK" l-zcgredis5:1>set a aaa "QUEUED" l-zcgredis5:1>set b bbb "QUEUED" l-zcgredis5:1>set c ccc "QUEUED" l-zcgredis5:1>exec 1) "OK" 2) "OK" 3) "OK" l-zcgredis5:1>
描述
Redis 腳本使用 Lua 解釋器來執行腳本。 Redis 2.6 版本經過內嵌支持 Lua 環境。執行腳本的經常使用命令爲 EVAL。
命令
eval(script, numkeys, key1, ..., keyN, arg1, ..., argN):執行Lua腳本。
evalsha(sha1, numkeys, key1, ..., keyN, arg1, ..., argN):執行 Lua 腳本。
script exists(script1, ..., scriptN):查看指定的腳本是否已經被保存在緩存當中。
script flush:從腳本緩存中移除全部腳本。
script kill:殺死當前正在運行的 Lua 腳本。
script load(script):將腳本 script 添加到腳本緩存中,但並不當即執行這個腳本。
示例
l-zcgredis5:1>EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second 1) "key1" 2) "key2" 3) "first" 4) "second" l-zcgredis5:1>
quit:關閉當前鏈接
auth(password):驗證密碼是否正確。
echo(message):打印 message 字符串。
select(index):切換到指定的數據庫。
ping:查看服務是否運行。
l-zcgredis5:1>ping "PONG"
client kill(ip:port):關閉客戶端鏈接。
client list:獲取鏈接到服務器的客戶端鏈接列表。
client setname(connection-name):設置當前鏈接的名稱。
client getname:獲取鏈接的名稱。
client pause(timeout):在指定時間內終止運行來自客戶端的命令。
cluster slots:獲取集羣節點的映射數組。
command:獲取 Redis 命令詳情數組。
command count:獲取 Redis 命令總數。
command getkeys:獲取給定命令的全部鍵。(不清楚)
command info(command-name1, ..., command-nameN):獲取指定Redis命令描述的數組。
time:返回當前服務器時間。一個包含兩個字符串的列表: 第一個字符串是當前時間(以 UNIX 時間戳格式表示),而第二個字符串是當前這一秒鐘已經逝去的微秒數。
config get(parameter):獲取指定配置參數的值,parameyer 爲 * 的時候,獲取全部配置信息。
config rewrite:對啓動 Redis 服務器時所指定的 redis.conf 配置文件進行改寫。
config set(parameter, value):修改 redis 配置參數,無需重啓。
config resetstat:重置 INFO 命令中的某些統計數據。
dbsize:返回當前數據庫中 key 的數量。
debug object(key):獲取 key 的調試信息。
debug segfault:執行一個非法的內存訪問從而讓 Redis 崩潰,僅在開發時用於 BUG 調試。
flushdb:刪除當前數據庫中的全部 key。
flushall:刪除全部數據庫中的全部key。
info(section):獲取Redis服務器的各類信息和統計數值。section 爲空的話會顯示全部信息,section 值爲 Server、Clients、Memory、Persistence、Stats、Replication、CPU、Keyspace。
save:將數據同步保存到磁盤。
lastsave:返回最近一次 Redis 成功將數據保存到磁盤上的時間,以 UNIX 時間戳格式表示。
bgsave:將數據異步保存到磁盤。
bgrewriteaof:異步執行一個 AOF(AppendOnly File) 文件重寫操做。
monitor:實時打印出 Redis 服務器接收到的命令,調試用。實時轉儲收到的請求。
role:返回主從實例所屬的角色。
shutdown:將數據同步保存到磁盤,而後關閉服務。
slaveof(ip:port):改變複製策略設置。將當前服務器轉變爲指定服務器的從屬服務器(slave server)。若是當前服務器已是某個主服務器(master server)的從屬服務器,那麼執行 SLAVEOF host port 將使當前服務器中止對舊主服務器的同步,丟棄舊數據集,轉而開始對新主服務器進行同步。
slave no one:對一個從屬服務器執行命令 SLAVEOF NO ONE 將使得這個從屬服務器關閉複製功能,並從從屬服務器轉變回主服務器,原來同步所得的數據集不會被丟棄。利用『 SLAVEOF NO ONE 不會丟棄同步所得數據集』這個特性,能夠在主服務器失敗的時候,將從屬服務器用做新的主服務器,從而實現無間斷運行。
slowlog :管理 redis 的慢日誌。
sync:用於複製功能(replication)的內部命令。用於同步主從服務器。