排查redis集群读取速度问题(redis集群读取慢)
作为开发者,我们经常会遇到代码性能优化的需求,其中读取速度是非常重要的指标之一。下面,来看看如何排查Redis集群读取速度问题。
Redis本身包含一些使得用户容易对一些性能参数、状态进行回答的工具,比如time,info,Monitor等等。我们可以使用info命令来查看集群的运行信息,包括时间、查询次数、读取、写入数据量等:
$ info | grep -i read_write
# Keyspacedb0:keys=10000,expires=1000,avg_ttl=400
# Serverrdb_last_save_time:1615308042
rdb_changes_since_last_save:0rdb_bgsave_in_progress:0
rdb_last_bgsave_time_sec:0rdb_current_bgsave_time_sec:-1
aof_enabled:0aof_rewrite_in_progress:0
aof_rewrite_scheduled:0aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1aof_last_bgrewrite_status:ok
aof_last_write_status:okaof_current_size:0
aof_base_size:0aof_pending_rewrite:0
aof_buffer_length:0aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0aof_delayed_fsync:0
# Clientsconnected_clients:2
client_longest_output_list:0client_biggest_input_buf:0
client_recent_max_input_buf:0
可以利用Redis的Monitor功能来观察客户端向Redis集群发出的指令,从而获知性能瓶颈,如在哪里出现读取速度慢:
$ redis-cli
127.0.0.1:6379> monitorOK
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集群读取速度的办法,今天的分享就到这里。