Redis缓存【监控指标】

1、监控指标

参考:https://redis.io/commands/info

1.1、性能指标:Performance

Name

Description

latency

Redis响应一个请求的时间

instantaneous_ops_per_sec

平均每秒处理请求总数

hi rate(calculated)

缓存命中率(计算出来的

 

 

 

 

1.2、内存指标: Memory

Name

Description

used_memory

已使用内存

mem_fragmentation_ratio

内存碎片率

evicted_keys

由于最大内存限制被移除的key的数量

blocked_clients

由于BLPOP,BRPOP,or BRPOPLPUSH而备阻塞的客户端

 

 

 

 

 

 

1.3、基本活动指标:Basic activity

redis连接了多少客户端 通过观察其数量可以确认是否存在意料之外的连接。如果发现数量不对劲,就可以使用lcient list指令列出所有的客户端链接地址来确定源头。

Name

Description

connected_clients

客户端连接数

conected_laves

slave数量

master_last_io_seconds_ago

最近一次主从交互之后的秒数

keyspace

数据库中的key值总数

 

 

 

 

 

1.4. 持久性指标: Persistence

Name

Description

rdb_last_save_time

最后一次持久化保存磁盘的时间戳

rdb_changes_sice_last_save

自最后一次持久化以来数据库的更改数

 

 

 

 

 

1.5、错误指标:Error

由于超出最大连接数限制而被拒绝的客户端连接次数,如果这个数字很大,则意味着服务器的最大连接数设置得过低,需要调整maxclients。

Name

Description

rejected_connections

由于达到maxclient限制而被拒绝的连接数

keyspace_misses

key值查找失败(没有命中)次数

master_link_down_since_seconds

主从断开的持续时间(以秒为单位)

 

 

 

 

 

注:以上标红的为必须要监控的指标参数。

2、监控方式

  • redis-benchmark
  • redis-stat
  • redis-faina
  • redislive
  • redis-cli
  • monitor
  • showlog
    1.get
    :获取慢查询日志
    2.len:获取慢查询日志条目数
    3.reset:重置慢查询日志
    相关配置:
    1. slowlog-log-slower-than 1000 # 设置慢查询的时间下线,单位:微秒
    2. slowlog-max-len 100 # 设置慢查询命令对应的日志显示长度,单位:命令数
       
  • info(可以一次性获取所有的信息,也可以按块获取信息)

使用info命令获取所有与Redis服务相关的信息

1.server:服务器运行的环境参数
2.clients:客户端相关信息
3.memory:服务器运行内存统计数据
4.persistence:持久化信息
5.stats:通用统计数据
6.Replication:主从复制相关信息
7.CPUCPU使用情况
8.cluster:集群信息
9.Keypass:键值对统计数量信息

2.1、终端info命令使用

登录redis-cli查看redis相关监控信息:


// pub1:/home/test/redis-5.0.3/src % ./redis-cli -h iotrtdb1 -p 6379-c -a root.2020

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

pub1:6379> info

# Server

redis_version:5.0.3    # redis版本号

redis_git_sha1:00000000 #Git SHA1

redis_git_dirty:0           #Git dirty flag

redis_build_id:a71f8e9236e51d3e

redis_mode:cluster     #redis模式

os:Linux 4.9.0-0.bpo.1-linx-security-amd64 x86_64   #操作系统    

arch_bits:64         #架构32 or 64

multiplexing_api:epoll   #event loop mechanism used by Redis

atomicvar_api:atomic-builtin

gcc_version:4.8.5         #编译redis server的GCC版本

process_id:7466           #server的进程号

run_id:10fc45b5d4b20eb222fbbe6ed8c37cbe6af0b6b7              #server的随机id(cluster和sentinel使用)

tcp_port:17500          #tcp/ip监控端口

uptime_in_seconds:5963209      #启动的总时间(单位秒)

uptime_in_days:69         #启动总时间(单位天)

hz:10

configured_hz:10

lru_clock:9840536        #每分钟会递增的一个clock,用于LRU管理

executable:/home/d5000/test/redis-5.0.3/src/./redis-server  #服务执行命令位置

config_file:/home/d5000/test/redis_cluster/17500/redis.conf          #配置文件位置

# Clients

connected_clients:129  #连接的客户端数量

client_recent_max_input_buffer:2              #当前client中最长的output list

client_recent_max_output_buffer:0            #当前client中最大的input buffer                 

blocked_clients:0         #由于BLPOP,BRPOP,or BRPOPLPUSH而被阻塞的客户端

 

# Memory

used_memory:197812400         # 已使用内存

used_memory_human:188.65M       #内存分配器从操作系统分配的内存总量

used_memory_rss:171941888 #redis占用的总内存(包括内存碎片)

used_memory_rss_human:163.98M         #操作系统看到的内存占用,top命令看到的内存

used_memory_peak:223458312         #redis占用的内存峰值

used_memory_peak_human:213.11M      # redis内存消耗的峰值

used_memory_peak_perc:88.52%     

used_memory_overhead:65087662

used_memory_startup:1449384

used_memory_dataset:132724738

used_memory_dataset_perc:67.59%

allocator_allocated:198244296

allocator_active:201465856

allocator_resident:211529728

total_system_memory:33718718464

total_system_memory_human:31.40G

used_memory_lua:37888

used_memory_lua_human:37.00K # lua脚本引擎占用的内存大小

used_memory_scripts:0

used_memory_scripts_human:0B

number_of_cached_scripts:0

maxmemory:0

maxmemory_human:0B

maxmemory_policy:noeviction

allocator_frag_ratio:1.02

allocator_frag_bytes:3221560

allocator_rss_ratio:1.05

allocator_rss_bytes:10063872

rss_overhead_ratio:0.81

rss_overhead_bytes:-39587840

mem_fragmentation_ratio:0.87        #内存碎片率

mem_fragmentation_bytes:-25828256

mem_not_counted_for_evict:0

mem_replication_backlog:0

mem_clients_slaves:0

mem_clients_normal:2215710

mem_aof_buffer:0

mem_allocator:jemalloc-5.1.0    #编译的时候选择的内存分配器版本

active_defrag_running:0

lazyfree_pending_objects:0

 

# Persistence

loading:0   #是否有dump在执行中

rdb_changes_since_last_save:12842719696  # 自最后一次持久化以来数据库的更改数

rdb_bgsave_in_progress:0          #是否有RDB save在执行

rdb_last_save_time:1597712847  # 最后一次持久化保存磁盘的时间戳

rdb_last_bgsave_status:ok                   #最后一次 RDB save操作的状态

rdb_last_bgsave_time_sec:-1     #最后一次RDB save操作持续时间,单位秒

rdb_current_bgsave_time_sec:-1       #当前执行中的RDB save操作持续时间

rdb_last_cow_size:0  

aof_enabled:0      #aof功能是否打开

aof_rewrite_in_progress:0          #aof的rewraite操作是否在执行

aof_rewrite_scheduled:0

aof_last_rewrite_time_sec:-1    #最后一次AOF的rewrite操作持续时间

aof_current_rewrite_time_sec:-1     #当前执行中的AOF的rewrite操作的持续时间

aof_last_bgrewrite_status:ok    #上次AOF的rewrite操作状态

aof_last_write_status:ok    #最后一次AOF的write操作状态

aof_last_cow_size:0

 

# Stats

total_connections_received:2575285        #服务器已接受的连接请求数量

total_commands_processed:28499626091        #server处理的命令的总数

instantaneous_ops_per_sec:1          #服务器每秒钟执行的命令数量

total_net_input_bytes:1989994886010

total_net_output_bytes:649513988586

instantaneous_input_kbps:0.03         #redis网络入口kps

instantaneous_output_kbps:7.00   #redis网络出口kps

rejected_connections:0       #因为最大客户端数量限制而被拒绝的连接请求数量

sync_full:0

sync_partial_ok:0

sync_partial_err:0

expired_keys:9    #因为过期而被自动删除的数据库键数量

expired_stale_perc:0.00

expired_time_cap_reached_count:0

evicted_keys:0     # 由于最大内存限制被移除的key的数量

keyspace_hits:15397635196      #查找数据库键成功的次数

keyspace_misses:253663939      #查找数据库键失败的次数

pubsub_channels:0

pubsub_patterns:0

latest_fork_usec:0       #最后一次fork操作持续时间(单位微秒)

migrate_cached_sockets:0

slave_expires_tracked_keys:0

active_defrag_hits:0

active_defrag_misses:0

active_defrag_key_hits:0

active_defrag_key_misses:0

 

# Replication

role:master

connected_slaves:0

master_replid:8f7b4c2cf289076e3a7d122871575155fbe5f2fa

master_replid2:0000000000000000000000000000000000000000

master_repl_offset:0

second_repl_offset:-1

repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

 

# CPU

used_cpu_sys:8020.712000       #redis server消耗的系统CPU

used_cpu_user:34253.984000 #redis server消耗的用户CPU

used_cpu_sys_children:0.000000       #后台进程消耗的系统CPU

used_cpu_user_children:0.000000     #后台进程消耗的用户CPU

 

# Cluster

cluster_enabled:1       #实例是否启用集群模式,1代表是

 

# Keyspace

db0:keys=1116133,expires=0,avg_ttl=0     #各个数据库的 key 的数量,以及带有生存期的 key 的数量


交互式info命令使用:

 

./redis-cli -h  ip地址 -p 端口号 [集群加-c]  -a 登录密码  info 按块获取信息 | grep 需要过滤的参数

示例:

       

2.2、Java客户端jedis.info()获取监控信息

1)依赖

<dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
</dependency>

2)示例

public class RedisInfoTest {
	public static void main(String[] args) {
			Jedis jedis = null;
			try {
				jedis = new Jedis("192.168.1.92", 6379); //地址
				jedis.auth("root.2020); //密码
				String info = jedis.info();
				System.out.println(info);
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				if (jedis != null) {
					jedis.close();
				}
			}
		}
}

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot提供了与Redis集成的功能,使得使用Redis作为缓存变得非常方便。我们可以使用Spring的缓存注解@Cacheable来实现对Redis缓存监控。 首先,我们需要在项目的依赖中添加Spring Boot与Redis的集成包。在pom.xml文件中加入以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 接下来,我们需要在Spring Boot的配置文件中配置Redis的连接信息。我们可以在application.properties或application.yml文件中添加以下配置: ``` spring.redis.host=127.0.0.1 # Redis服务器地址 spring.redis.port=6379 # Redis服务器端口 spring.redis.password= # Redis服务器密码(如果有的话) ``` 然后,我们可以在需要进行缓存的方法上添加@Cacheable注解。这个注解将使得方法的返回值被缓存Redis中,下次调用相同参数的方法时,将直接从Redis中取出缓存的值,而不再执行方法体。 示例代码如下: ``` @Service public class UserService { @Cacheable(value = "userCache", key = "#id") public User getUserById(Long id) { // 查询数据库获取用户信息 // ... return user; } } ``` 以上示例中,getUserById方法被@Cacheable注解修饰,指定了缓存的名称为"userCache",以id作为缓存的key。用户在第一次调用该方法时,会执行方法体并将结果缓存Redis中。之后再调用相同id的方法时,将直接从Redis取出缓存的用户对象。 通过以上步骤,我们就可以使用Spring Boot进行Redis缓存监控了。我们可以使用Redis的命令行工具或可视化工具来查看Redis中的缓存情况,通过监控缓存的命中率等指标,来评估缓存的效果和性能优化的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值