排查redis集群读取速度问题(redis集群读取慢)

作为开发者,我们经常会遇到代码性能优化的需求,其中读取速度是非常重要的指标之一。下面,来看看如何排查Redis集群读取速度问题。

Redis本身包含一些使得用户容易对一些性能参数、状态进行回答的工具,比如time,info,Monitor等等。我们可以使用info命令来查看集群的运行信息,包括时间、查询次数、读取、写入数据量等:

$ info | grep -i read_write
# Keyspace
db0:keys=10000,expires=1000,avg_ttl=400
# Server
rdb_last_save_time:1615308042
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_current_size:0
aof_base_size:0
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0
# Clients
connected_clients:2
client_longest_output_list:0
client_biggest_input_buf:0
client_recent_max_input_buf:0

可以利用Redis的Monitor功能来观察客户端向Redis集群发出的指令,从而获知性能瓶颈,如在哪里出现读取速度慢:

$ redis-cli
127.0.0.1:6379> monitor
OK
1490930713.366331 [0 127.0.0.1:62462] "set" "foo" "bar"
1490930714.354292 [0 127.0.0.1:62462] "get" "foo"

Redis也内置了一系列的告警工具,可以检测性能指标是否超过预定值。比如,如果通过以上排查发现读取速度具有极大不稳定性,可以通过设置 notify-keyspace-events,使得Redis内核可以监控指定的key的变化,用此来实现抢占式的读取操作。

$ config set notify-keyspace-events KA
OK

有几种利用Redis本身的特性,来排查Redis集群读取速度的办法,今天的分享就到这里。


数据运维技术 » 排查redis集群读取速度问题(redis集群读取慢)