一、進程
<Linux?:?/home/redis13/redis/bin>ps?-ef?|grep?redis-server redis13???2348?????1??1?Jul18??????????06:57:42?redis-server?192.168.18.85:6388 redis02???3472?????1??3?Jan10??????????7-02:03:45?/home/redis02/redis/bin/redis-server?192.168.18.85:6384???????????????? redis02???4515?????1??4?Jan10??????????8-13:19:32?/home/redis02/redis/bin/redis-server?192.168.18.85:6385???????????????? redis02???5360?????1??3?Jan10??????????6-17:10:42?/home/redis02/redis/bin/redis-server?192.168.18.85:6386???????????????? redis02???6285?????1??3?Jan10??????????6-12:31:38?/home/redis02/redis/bin/redis-server?192.168.18.85:6387
二、啟動命令
./redis-cli?-h?192.168.18.85?-p?6384
三、基礎命令
#查看匹配前綴的keys keys?"miao*" #隨機取出一個key randomkey #查看key的類型 type?key #查看數據庫中key的數量 dbsize #查看服務器信息 info #查看redis正在做什么 monitor #查看所有key keys?*??或??keys?"*" #清空redis flushdb #取key值 get?key
四、Redis 的重要健康指標
【0】慢日志:①、通過命令[slowlog get]得到 Redis 執行的 slowlog 集合,理想情況下slowlog 集合應該為空即沒有任何慢日志。
②、若發現有慢命令,則應該逐個分析是否正常,是否需要優化。
192.168.17.46:6386> slowlog get
?1) 1) (integer) 22
? ? 2) (integer) 1563344158
? ? 3) (integer) 10193
? ? 4) 1) "SET"
? ? ? ?2) "getBatchChapterFiles"
? ? ? ?3) "\x0b\xfa\529:\t489761532B\x02-1J\t48976181... (1293 more bytes)"
【1】存活情況:是最重要的健康指標,通過命令 PING 的響應是否為 PONG 來判斷。
~/redis/bin> ./redis-cli
127.0.0.1:6379> ping
PONG
【2】連接數:①、連接的客戶端數量,[redis-cli info Clients|grep connected_clients] 得到,這個值與使用 Redis 服務的連接池配置關系比較大,這個值如果很大,需要排查問題原因。②、另外還有一個拒絕連接數(rejected_connections)也需要關注,這個值理想狀態是 0 。如果大于 0,說明創建的連接數大于 maxclients,需要排查原因。是 Redis 連接池配合不合理還是連接這個Redis 的服務過多。
【3】阻塞客戶端數量:blocked_clients 通常是執行了 list 數據類型的 BLPOP 或者 BRPOP 命令引起的,可以通過[redis-cli info Clients|grep blocked_clients]得到,這個值最應該=0。
【4】使用內存峰值:①、監控 Redis 內存使用峰值,可以通過命令[config set maxmemory]設置允許使用的最大內存。②、為了防止發生 swap 導致 Redis 性能驟減,甚至由于使用內存超標導致系統kill,建議used_memory_peak(占用內存的峰值)的值與maxmemory 的值有個安全區間,例如1G。
【5】內存碎片率:①、mem_fragmentation_ratio = used_memory_rss/use_memory 當值大于1時,表示分配的內存超過實際使用的內存,數值越大[利用率不高],碎片率越嚴重。當這個值小于1時,表示發生了 swap(Swap分區在系統的物理內存不夠用的時候,把物理內存中的一部分空間釋放出來,以供當前運行的程序使用) ,既可用內存不足。
? ②、Redis4.0 有一個主要的特性就是優化內存碎片率問題(Memory de-fragmentation)。在redis.conf 配置文件中[ACTIVE DEFRAGMENTATION:碎片整理允許 Redis 壓縮內存空間,從而回收內存。此特性默認是關閉的,可以通過命令CONFIG SET activedefrag yes 熱啟動這個特性]。
? ③、當內存使用量(use_memory)很小的時候,這個值參考價值不大。所以建議 used_memory 至少 1G 以上才考慮對內存碎片率進行監控。
??
【6】緩存命中率:①、keyspace_misses/keyspace_hits 這兩個指標用來統計緩存的命中率,keyspace_misses值未命中次數,keyspace_hits 表示命令次數。keyspace_hits/(keyspace_misses+keyspace_hits) 就是緩存命中率。②、如果緩存命中率過低,那么要排查對緩存的用法是否有問題。
【7】OPS:instantaneous_pos_per_sec 表示緩存的OPS(operation per second 每秒操作次數)
【8】持久化:①、rdb_last_bgsave_status/aof_last_bgrewrite_status,即最近一次或者最后一次 RDB/AOF 持久化是否有問題,這兩個值都應該時 “OK”。②、由于 Redis 持久化時會 fork 子進程,且 fork 是一個完全阻塞的過程,所以可以監控 fork 耗時即:latest_fork_usec,單位是微妙,如果這個值比較大會影響業務,甚至出現 timeout 。
【9】失效KEY:如果把 Redis 當緩存使用,那么建議所有的 key 都設置 expire 屬性,通過命令 redis-cli info Keyspace 得到每個 db 中 key 的數量和設置了 expire屬性的 key 的屬性,且 expires(表示設置了超時時間的key個數) 需要等于 keys。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。