溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Redis基礎(chǔ)

發(fā)布時(shí)間:2020-03-01 06:54:01 來源:網(wǎng)絡(luò) 閱讀:215 作者:浮爾魔司 欄目:系統(tǒng)運(yùn)維


一、進(jìn)程

<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


三、基礎(chǔ)命令

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

#隨機(jī)取出一個(gè)key
randomkey

#查看key的類型
type?key

#查看數(shù)據(jù)庫中key的數(shù)量
dbsize

#查看服務(wù)器信息
info

#查看redis正在做什么
monitor

#查看所有key
keys?*??或??keys?"*"

#清空redis
flushdb

#取key值
get?key


四、Redis 的重要健康指標(biāo)

【0】慢日志:①、通過命令[slowlog get]得到 Redis 執(zhí)行的 slowlog 集合,理想情況下slowlog 集合應(yīng)該為空即沒有任何慢日志。

②、若發(fā)現(xiàn)有慢命令,則應(yīng)該逐個(gè)分析是否正常,是否需要優(yōu)化。

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】存活情況:是最重要的健康指標(biāo),通過命令 PING 的響應(yīng)是否為 PONG 來判斷。

~/redis/bin> ./redis-cli

127.0.0.1:6379> ping

PONG


【2】連接數(shù):①、連接的客戶端數(shù)量,[redis-cli info Clients|grep connected_clients] 得到,這個(gè)值與使用 Redis 服務(wù)的連接池配置關(guān)系比較大,這個(gè)值如果很大,需要排查問題原因。②、另外還有一個(gè)拒絕連接數(shù)(rejected_connections)也需要關(guān)注,這個(gè)值理想狀態(tài)是 0 。如果大于 0,說明創(chuàng)建的連接數(shù)大于 maxclients,需要排查原因。是 Redis 連接池配合不合理還是連接這個(gè)Redis 的服務(wù)過多。


【3】阻塞客戶端數(shù)量:blocked_clients 通常是執(zhí)行了 list 數(shù)據(jù)類型的 BLPOP 或者 BRPOP 命令引起的,可以通過[redis-cli info Clients|grep blocked_clients]得到,這個(gè)值最應(yīng)該=0。


【4】使用內(nèi)存峰值:①、監(jiān)控 Redis 內(nèi)存使用峰值,可以通過命令[config set maxmemory]設(shè)置允許使用的最大內(nèi)存。②、為了防止發(fā)生 swap 導(dǎo)致 Redis 性能驟減,甚至由于使用內(nèi)存超標(biāo)導(dǎo)致系統(tǒng)kill,建議used_memory_peak(占用內(nèi)存的峰值)的值與maxmemory 的值有個(gè)安全區(qū)間,例如1G。


【5】內(nèi)存碎片率:①、mem_fragmentation_ratio = used_memory_rss/use_memory 當(dāng)值大于1時(shí),表示分配的內(nèi)存超過實(shí)際使用的內(nèi)存,數(shù)值越大[利用率不高],碎片率越嚴(yán)重。當(dāng)這個(gè)值小于1時(shí),表示發(fā)生了 swap(Swap分區(qū)在系統(tǒng)的物理內(nèi)存不夠用的時(shí)候,把物理內(nèi)存中的一部分空間釋放出來,以供當(dāng)前運(yùn)行的程序使用) ,既可用內(nèi)存不足。

? ②、Redis4.0 有一個(gè)主要的特性就是優(yōu)化內(nèi)存碎片率問題(Memory de-fragmentation)。在redis.conf 配置文件中[ACTIVE DEFRAGMENTATION:碎片整理允許 Redis 壓縮內(nèi)存空間,從而回收內(nèi)存。此特性默認(rèn)是關(guān)閉的,可以通過命令CONFIG SET activedefrag yes 熱啟動這個(gè)特性]。

? ③、當(dāng)內(nèi)存使用量(use_memory)很小的時(shí)候,這個(gè)值參考價(jià)值不大。所以建議 used_memory 至少 1G 以上才考慮對內(nèi)存碎片率進(jìn)行監(jiān)控。

??

【6】緩存命中率:①、keyspace_misses/keyspace_hits 這兩個(gè)指標(biāo)用來統(tǒng)計(jì)緩存的命中率,keyspace_misses值未命中次數(shù),keyspace_hits 表示命令次數(shù)。keyspace_hits/(keyspace_misses+keyspace_hits) 就是緩存命中率。②、如果緩存命中率過低,那么要排查對緩存的用法是否有問題。


【7】OPS:instantaneous_pos_per_sec 表示緩存的OPS(operation per second 每秒操作次數(shù))


【8】持久化:①、rdb_last_bgsave_status/aof_last_bgrewrite_status,即最近一次或者最后一次 RDB/AOF 持久化是否有問題,這兩個(gè)值都應(yīng)該時(shí) “OK”。②、由于 Redis 持久化時(shí)會 fork 子進(jìn)程,且 fork 是一個(gè)完全阻塞的過程,所以可以監(jiān)控 fork 耗時(shí)即:latest_fork_usec,單位是微妙,如果這個(gè)值比較大會影響業(yè)務(wù),甚至出現(xiàn) timeout 。


【9】失效KEY:如果把 Redis 當(dāng)緩存使用,那么建議所有的 key 都設(shè)置 expire 屬性,通過命令 redis-cli info Keyspace 得到每個(gè) db 中 key 的數(shù)量和設(shè)置了 expire屬性的 key 的屬性,且 expires(表示設(shè)置了超時(shí)時(shí)間的key個(gè)數(shù)) 需要等于 keys。





向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI