慢查詢日誌記錄命令執行先後的超時的執行時間。(只記錄命令執行時間)git
Redis提供了slowlog-log-slower-than
和slowlog-max-len
兩個配置。redis
slowlog-log-slower-than
是預設閥值,默認值10000微秒。若是執行的時間超過了這個閥值,那麼這個命令就會被記錄在慢查詢日誌中。算法
設置slowlog-log-slower-than
=0 ==> 記錄全部命令
設置slowlog-log-slower-than
<0 ==> 對於任何命令都不會記錄vim
slowlog-max-len
說明慢查詢日誌最多存儲多少條。數組
修改配置文件:併發
$ vim redis.conf ... slowlog-log-slower-than 10000 slowlog-max-len 5
使用config set
命令:運維
> config set slowlog-log-slower-than 20000 > config set slowlog-max-len 1000 > config rewrite # 配置持久化到本地配置文件
> slowlog get [n]
慢查詢日誌由日誌標識id、發生時間戳、命令耗時、執行命令和參數組成。性能
> slowlog len
> slowlog reset
-r
可讓命令執行屢次。
例如執行三次ping命令:測試
$ redis-cli -r 3 ping
-i
表示間隔多少秒執行一次命令。
例如每一個1秒執行一次ping命令,一共執行5次:this
$ redis-cli -r 5 -i 1 ping
-r
表明從標準輸入讀取數據做爲redis-cli的最後一個參數。
例如:
$ echo "hello" | redis-cli -x set key
-c
用於鏈接Redis Cluster節點時使用。
若是Redis配置了密碼,使用-a
輸入密碼。
--scan
和--pattern
用於掃描指定模式的鍵。
--slave
是把當前Redis節點的從節點,用來獲取當前Redis節點的更新操做。
--rdb
會請求Redis示例生成併發送RDB持久化文件,保存在本地。
--stat
能夠實時獲取Redis的重要統計信息。
$ redis-cli --stat
--test-memory
可用於測試系統內存是否夠Redis使用。
例如檢測當前系統是否能提供1G內存給Redis:
$ redis-server --test-memory 1024
測試完成輸入passed this test。
redis-benchmark
用於爲Redis作基準性能測試。
-c
設置客戶端的併發數量,默認爲50。
-n
表明客戶端的請求總量,默認爲100000。
對一組Redis命令進行組裝,經過一次RTT(往返命令時間)傳輸給Redis。pipeline每次只能做用一個Redis節點上。
從開發層面來控制。
鏈接:https://blog.csdn.net/weixin_...
Redis提供了簡單的事務功能以及集成Lua腳原本解決問題。
Redis提供簡單的事務功能,將一組須要一塊兒執行的命令放到multi
和exec
兩個命令之間。
> multi > set key hello QUEUED # 表示命令並無真正執行 > exec
可使用discard
命令來中止事務的執行
> discard
watch
命令能夠監控一個或多個鍵,若是有鍵在事務修改期間被別的方式修改,則以後的事務不會執行。
> watch key
在Redis中執行Lua腳本有兩種方法:eval
和evalsha
。
> eval 腳本內容 key個數 key列表 參數列表
能夠經過redis-cli--eval
執行Lua腳本。
經過獲得腳本的SHA1校驗和來直接執行對應的Lua腳本。可使Lua腳本常駐在服務端。
將腳本內容加載到Redis的內存中:
$ redis-cli script load "$(cat lua_get.lua)"
獲得Lua腳本的SHA1。
> evalsha 腳本SHA1值 key個數 key列表 參數列表
> script load script
> scripts exists sha1 [sha1 ...]
> script flush
> script kill
以二進制來表示數據。
> setbit key offset value
設置鍵的第offset各位的值
> gitbit key offset
> bitcount start end
> bitop op destkey key[key ....]
bitop
包括了:and交集、or並集、not非、xor異或。將結果保存在destkey
中。
一種基準算法。
> pfadd key element [element ...]
添加成功返回1。
> pfcount key [key ...]
> pfmerge destkey sourcekey [siyrcekey ..]
在"發佈/訂閱"的模式下,消息發送者和訂閱者不進行直接通訊,發佈者客戶端向指定的頻道(channel)發佈消息,訂閱該頻道的每一個客戶端均可以收到該消息。
> publish channel message
> subscribe channel [channel ...]
> unsubscribe [channel [channel ...]]
> psubscribe pattern [pattern ...] > punsubscribe [pattern [pattern ...]]
> pubsub channels [pattern]
> pubsub numsub [channel ...]
> pubsub numpat
Redis3.2版本提供了GEO(定理信息定位)功能。
> geoadd key longitude latitude member [longitude latitude member ...]
longitude:經度
latitude:維度
member:成員
> geopos key member [member ...]
> geodist key member1 member2 [unit]
unit表明返回的結果的單位:
m(meters):米
km(kilometers):千米
mi(miles):英里
ft(feet):表明尺
> georadius key longitude latitude raniusm|km|ft|mi > georadiusbymember key member raniusm|km|ft|mi
> geohash key member [member ...]
> zrem key member
GEO的底層實現是zset,因此借用zrem
命令實現對地理位置信息的刪除。