redis 小功能大用处
慢查詢?nèi)罩痉治?/h1>
redis提供了慢查詢?nèi)罩竟δ?#xff0c;會計算每條命令的執(zhí)行時間,超過閾值后記錄下來,注意計算的是命令的執(zhí)行時間,不包含網(wǎng)絡(luò)傳輸和排隊時間。
config get slowlog-log-slower-than獲取操作超時的閾值,我的版本默認(rèn)是10 000微秒,即10毫秒
config get slowlog-max-len 獲取慢查詢?nèi)罩咀疃啻鎯l數(shù),默認(rèn)128條,超過會循環(huán)覆蓋
通過slowlog get n來獲取慢查詢?nèi)罩?#xff0c;返回日志id,時間戳,命令耗時,命令詳情,可以定時存儲到持久化數(shù)據(jù)庫制作可視化界面,cachecloud已經(jīng)提供這樣的功能。
slowlog len獲取列表長度,slowlog reset重置清理
redis shell命令
redis-cli命令
redis-cli -r 3 -i 1 ping 執(zhí)行三次命令,每隔1秒執(zhí)行一次
redis-cli -r 100 -i 1 info | grep used_memory_human每隔一秒輸出內(nèi)存的使用量,一共輸出100次
-a 輸入密碼
–slave將當(dāng)前客戶端模擬成當(dāng)前redis節(jié)點的從節(jié)點,可以用來獲取當(dāng)前redis節(jié)點的所有操作
–bigkeys 利用scan命令對key進行采樣,找出內(nèi)存占用比較大的鍵值
–latency --latency-history --latency-dist來檢測網(wǎng)絡(luò)延遲,對于運維挺有用
–stat和info一樣返回redis的統(tǒng)計信息
–raw和–no-row不同,會返回格式化后的信息,如中文
redis-benchmark
用來做基準(zhǔn)性能測試
redis-benchmark -c 100 -n 20000 -c代表客戶端的并發(fā)數(shù)量,-n代表客戶端請求總量
-r會在key,counter鍵后加一個12位的后綴, -r 10000 不代表隨機數(shù)的個數(shù),而表示只對后四位做隨機處理,
-t可以對指定命令做基準(zhǔn)測試 --csv導(dǎo)出
事務(wù)和lua腳本
redis事務(wù)介紹
- 服務(wù)端在事務(wù)的執(zhí)行過程中,不會被其他客戶端發(fā)送來的命令請求所打斷
- multi開啟事務(wù),之后的命令會放到一個隊列里,直到執(zhí)行exec命令。discard清空事務(wù)隊列, 并放棄執(zhí)行事務(wù)。
- 如果事務(wù)中的某些命令出現(xiàn)錯誤,事務(wù)中的其他命令仍然會繼續(xù)執(zhí)行,整個事務(wù)不會回滾;但如果是語法錯誤,在入隊列時就會被發(fā)現(xiàn)。
- redis樂觀鎖。被 WATCH 的鍵會被監(jiān)視,并會發(fā)覺這些鍵是否被改動過了。 如果有至少一個被監(jiān)視的鍵在 EXEC 執(zhí)行之前被修改了, 那么整個事務(wù)都會被取消, EXEC 返回nil-reply來表示事務(wù)已經(jīng)失敗。
lua腳本在redis中是原子執(zhí)行的,不會插入其他命令,并且可以利用lua定制自己的命令實現(xiàn)復(fù)用,打包多條命令也減少了多次命令的網(wǎng)絡(luò)開銷。
數(shù)據(jù)結(jié)構(gòu)
Bitmaps
redis提供了Bitmaps的數(shù)據(jù)結(jié)構(gòu),實際上就是一列由0和1組成的二進制字符串,可以按位進行操作。最大的好處就是可以節(jié)省內(nèi)存。
比如可以把用戶是否訪問過網(wǎng)站記錄到列表中,訪問過就記為1,偏移量就是用戶id,setbit unique:users:2016-04-05 5 1;也支持并集交集如求兩天都訪問過網(wǎng)站的用戶等
HyperLogLog
基于基數(shù)算法,利用極小的內(nèi)存空間來完成獨立總數(shù)的統(tǒng)計,
如pfadd 2016-03-06:unique:ips "ip1" "ip2" "ip3" 會自動去重,比使用set節(jié)省很多內(nèi)存
pfcount 2016-03-06:unique:ips 獲得獨立的ip數(shù)總數(shù),也可以 pfmerge進行合并。注意雖然占用內(nèi)存小,但是存在一定的錯誤率
GEO
redis提供了GEO地理信息定位功能,支持存儲經(jīng)緯度地理信息,可以實現(xiàn)附近人,某位置一定半徑內(nèi)地理位置的集合,兩個地理位置的距離等功能
總結(jié)
以上是生活随笔為你收集整理的redis 小功能大用处的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JWT-基于token的认证方式
- 下一篇: 主要垃圾回收器和垃圾回收算法