Redis基礎


1、進程redis

<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


2、啓動命令數據庫

./redis-cli -h 192.168.18.85 -p 6384


3、基礎命令緩存

#查看匹配前綴的keys
keys "miao*"

#隨機取出一個key
randomkey

#查看key的類型
type key

#查看數據庫中key的數量
dbsize

#查看服務器信息
info

#查看redis正在作什麼
monitor

#查看全部key
keys *  或  keys "*"

#清空redis
flushdb

#取key值
get key


4、Redis 的重要健康指標安全

【0】慢日誌:①、經過命令[slowlog get]獲得 Redis 執行的 slowlog 集合,理想狀況下slowlog 集合應該爲空即沒有任何慢日誌。bash

②、若發現有慢命令,則應該逐個分析是否正常,是否須要優化。服務器

192.168.17.46:6386> slowlog getdom

 1) 1) (integer) 22ide

    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。

相關文章
相關標籤/搜索