IP:192.168.225.128
環境:centos7php
keys * 查詢全部的鍵,會遍歷全部的鍵值,複雜度O(n)java
dbsize 查詢鍵總數,直接獲取redis內置的鍵總數變量,複雜度O(1)python
exists key 存在返回1,不存在返回0redis
del key [key...] 返回結果爲成功刪除鍵的個數數據庫
expire key seconds 當超過過時時間,會自動刪除,key在seconds秒後過時
expireat key timestamp 鍵在秒級時間戳timestamp後過時
pexpire key milliseconds 當超過過時時間,會自動刪除,key在milliseconds毫秒後過時
pexpireat key milliseconds-timestamp key在豪秒級時間戳timestamp後過時
ttl 命令能夠查看鍵hello的剩餘過時時間,單位:秒(>0剩餘過時時間;-1沒設置過時時間;-2鍵不存在)
pttl是毫秒centos
192.168.225.129:6379> expire k2 100 (integer) 1 192.168.225.129:6379> ttl k2 (integer) 91 192.168.225.129:6379> ttl ma (integer) -1 192.168.225.129:6379>
type key 若是鍵hello是字符串類型,則返回string;若是鍵不存在,則返回none服務器
rename key newkey
renamenx key newkey 只有newkey不存在時纔會被覆蓋數據結構
randomkeyapp
dump key
Restore key ttl value
Dump+restore能夠實如今不一樣的redis實例之間進行數據遷移的功能,整個遷移的過程分爲兩步;
1)在源redis上,dump命令會將鍵值序列化,格式採用的是RDB格式
2)在目標redis上,restore命令將上面序列化的值進行復原,其中ttl參數表明過時時間,ttl=0表明沒有過時時間
例子:dom
源redis 192.168.225.129:6379> get redis "world" 192.168.225.129:6379> dump redis "\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8" 目標redis 192.168.225.128:6379> get redis (nil) 192.168.225.128:6379> restore redis 0 "\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8" OK 192.168.225.128:6379> get redis "world"
migrate其實是吧dump、restore、del 3個命令進行組合,從而簡化了操做步驟。
Migrate host port key [ key ......] destination-db timeout [replace]
源redis中執行
192.168.225.129:6379> migrate 192.168.225.128 6379 flower 0 1000 replace
(將鍵flower遷移至目標192.168.225.128:6379的庫0中,超時時間爲1000毫秒,replace表示目標庫若是存在鍵flower,則覆蓋)
keys pattern
例如:keys h , keys [r,l]edis ,keys 等等
scan 它能夠有效的解決keys命令存在的阻塞問題,scan每次的額複雜度是O(1)
select dbIndex
默認16個數據庫:0-15,進入redis後默認是0庫。不建議使用多個數據庫
用於清除數據庫,flushdb只清除當前數據庫,flushall清除全部數據庫。
set key value [ex] [px] [nx|xx] ex爲鍵值設置秒級過時時間 px爲鍵值設置毫秒級過時時間 nx鍵必須不存在,才能夠設置成功,用於添加 xx與nx相反,鍵必須存在,才能夠設置成功,用於更新 setnx、setex 與上面的nx、ex做用相同
get key 不存在則返回nil
mset key value [key value ......]
mset a 1 b 2 c 3 d 4
mget key [key ......]
incr key
decr key /inceby key increment /decrby key increment
返回結果分爲3中狀況:
值不是整數,返回錯誤;
值是整數,返回自增後的結果;
鍵不存在,按照值爲0自增,返回結果爲1。
append key value 能夠向字符串尾部追加值
strlen key
每一個漢字佔用3個字字節
getset key value
setrange key offeset value 192.168.225.129:6379> get liming "class4" 192.168.225.129:6379> setrange liming 0 m (integer) 6 192.168.225.129:6379> get liming "mlass4" 192.168.225.129:6379>
getrange key start end start和end分別爲開始和結束的偏移量,偏移量從0開始
hset key field value
還提供了hsetnx命令
Eg:hset user:1 name tom
hget key field
192.168.225.129:6379> hset user:1 name Tom (integer) 1 192.168.225.129:6379> hget user:1 name "Tom" 192.168.225.129:6379> hget user:1 age (nil)
hdel key field [field ......] 會刪除一個或多個field,返回結果爲成功刪除fiel的個數
hlen key
Hmget key field [field ......]
Hmset key field value [field value]
hexists key field
hkeys key
192.168.225.129:6379> hkeys user:1 1) "name" 2) "age" 3) "grand" 4) "city"
hvals key
192.168.225.129:6379> hvals user:1 1) "Tom" 2) "20" 3) "3" 4) "beijing"
hgetall key
hincrby key field
hincrbyfloat key field
hstrlen key field
列表類型原來存儲多個有序的字符串,能夠重複
列表的4中操做類型 | |
---|---|
操做類型 | 操做 |
添加 | rpush 、lpush、linsert |
查 | lrange、lindex、llen |
刪除 | lpop 、rpop、 lrem、ltrim |
修改 | lset |
阻塞操做 | blpop、brpop |
rpush key value [value......]
lpush key value [value......]
linsert key before|after pivot value
linsert命令會從列表中找到等於pivot的元素,在其前或者後插入一個新的元素value
192.168.225.129:6379> rpush mylist a b c d e f b a (integer) 8 192.168.225.129:6379> linsert mylist after f g (integer) 9 192.168.225.129:6379> lrange mylist 0 -1 1) "a" 2) "b" 3) "c" 4) "d" 5) "e" 6) "f" 7) "g" 8) "b" 9) "a"
lrange key start end 索引下標從左到右分別是0到N-1,從右到左分別是-1到-N;end選項包含了自身
lrange key 0 -1 能夠從左到右獲取列表的全部元素
lrange mylist 1 3 獲取列表中第2個到第4個元素
lindex key index
llen key
rpop key
lpop key
lrem key count value
Lrem命令會從列表中找到=value的元素進行刪除,根據count的不一樣分爲3中狀況
Count>0,從左到有,刪除最多count個元素 Count<0,從右到左,刪除最多count絕對值個元素 Count=0,刪除全部
列表listaaa爲a a a a java php b a b 192.168.225.129:6379> lrem listaaa 5 a (integer) 5 192.168.225.129:6379> lrange listaaa 0 -1 1) "java" 2) "php" 3) "b" 4) "b" 192.168.225.129:6379> lrem listaaa 3 php (integer) 1 192.168.225.129:6379> lrange listaaa 0 -1 1) "java" 2) "b" 3) "b"
lset key index newValue 修改指定索引下標的元素
Eg:lset listaaa 1 python 輸出爲java python b
blpop key [key ...] timeout
brpop key [key ...] timeout
blpop和brpop是lpop、rpop的阻塞版本,除了彈出方式不一樣,使用方法基本相同,timeout阻塞時間
brpop list:test 3 3秒後返回
brpop list:test 0 一直處於阻塞中
brpop mylist 0 馬上返回
192.168.225.129:6379> brpop mylist 0 1) "mylist" 2) "a"
sadd key element [element .....] 返回結果爲添加成功的元素個數
srem key element [element .....] 返回結果爲刪除成功的元素個數
Scard key scard的時間複雜度爲O(1),直接用redis內部的變量
Sismember key element 在集合中則返回1,不然返回0
Srandmember key [count] count可不寫,默認爲1
Spop key [count] 3.2版本開始支持[count]
Smembers key 它和lrange、hgetall都屬於比較重的命令,有時候可使用sscan來完成
sinterstore destination key [ key ......] sunionstore destination key [ key ......] sdiffstore destination key [ key ......]
例如:sinterstore user:1_2:inter user:1 user:2 user:1_2:incr也是集合類型
zadd key score member[score member .....] 返回結果爲添加成功的元素個數
zcard key scard的時間複雜度爲O(1),直接用redis內部的變量
zsore key member
zrank key member
zrem key member [member .......]
zincrby key increment member
zrange key start end [withscores] 從低分到高分
zrevrange key start end [withscores] 從高分到低分
zrange key min max [withscores] [limit offset count ] 按照分數從低分到高分
zrevrange key max min [withscores] [limit offset count ] 按照分數從高分到低分
zcount key min max
zremrangebyrank key start end
zremrangebystore key min max
一、publish channel message 發佈消息 eg:publish channel:sports 'I want to go eatting' 二、subscribe channel [channel .....] 訂閱消息 eg: subscribe channel:sports 三、unsubscribe channel [channel .....] 取消訂閱 四、psubscribe pattern [pattern ......] 按照模式訂閱 五、unpsubscribe pattern [pattern ......] 按照模式取消訂閱 六、查詢訂閱 pubsub channels 查看活躍的頻道 192.168.225.128:6379> pubsub channels 1) "channel:sports" 2) "__sentinel__:hello" pubsub numsub [channel ......] 查看頻道訂閱數 pubsub numsub channel:sports pubsub numpat 查看模式訂閱數 七、說明: 客戶端在執行訂閱命令以後進入了訂閱狀態,只能接收四個命令:subscribe、psubscribe、unsubscribe、punsubscribe; 新開啓的訂閱客戶端,沒法收到該頻道以前的消息,由於redis不會對發佈的消息進行持久化。
8.1 discard , 取消執行事務塊內的全部命令 8.2 exec , 執行事務塊內的命令 8.3 multi , 標記一個事務塊的開始 8.4 unwatch , 取消watch命令對全部key的監視 8.5 watch key [key ...] , 監視一個或者多個key,若是事務執行以前,這個kye被其它命令所動,則事務被打斷
9.1 auth password , 登陸redis時輸入密碼 9.2 echo message , 打印一個特定的信息message,測試時使用 9.3 ping , 測試與服務器的鏈接,若是正常則返回pong 9.4 quit , 請求服務器關閉與當前客戶端的鏈接 9.5 select index , 切換到指定的數據庫
10.1 bgsave , 後臺異步保存數據到硬盤 10.2 client setname/client getname , 爲鏈接設置、獲取名字 10.3 client kill ip:port , 關閉地址爲 ip:port的客戶端 10.4 client list , 以人類可讀的方式,返回全部的鏈接客戶端信息和統計數據 10.5 config get parameter , 取得運行redis服務器的配置參數 10.6 config set parameter value , 設置redis服務器的配置參數 10.7 config resetstat , 重置info命令的某些統計數據 10.8 dbsize , 返回當前數據庫中key的數量 10.9 flushall , 清空整個redis服務器的數據(刪除全部數據庫的全部 key) 10.10 flushdb , 清空當前數據庫中的全部key 10.11 info [section] , 返回redis服務器的各類信息和統計數據 10.12 lastsave , 返回最近一次redis成功將數據保存到磁盤時的時間 10.13 monitor , 實時打印出redis服務器接收到的指令 10.14 save , 將當前 Redis 實例的全部數據快照(snapshot)以 RDB 文件的形式保存到硬盤 10.15 slaveof host port , 將當前服務器轉變爲指定服務器的從屬服務器 10.16 slowlog subcommand [argument] , Redis 用來記錄查詢執行時間的日誌系統