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。

相关文章
相关标签/搜索