redis使用注意点
所属分类 redis
浏览量 1552
Key命名设计:可读性、可管理性、简洁性
建议使用冒号作为分隔符
apps:app:1
apps:app:2
apps:app:3
Value设计:拒绝bigkey
超过10KB后,出现性能拐点
控制Key的生命周期:设定过期时间
时间复杂度为O(n)的命令需要注意N的数量
禁用命令:KEYS、FLUSHDB、FLUSHALL等
推荐使用批量操作提升操作效率
1、原生命令包括:例如mget、mset、hmget、hmset、LPUSH key value集合等。
2、非原生命令包括:Pipeline。
monitor命令控制使用时间
monitor命令一般是用来观察redis服务端都在执行哪些命令并实时输出。
随着monitor命令执行时间越来越长,会导致越来越多的数据积压在输出缓冲区,从而导致输出缓冲区占用内存越来越大。
开启一个monitor
redis-cli -h 127.0.0.1 -p 6379 monitor
使用redis-benchmark:
redis-benchmark -h 127.0.0.1 -p 6379 -c 500 -n 200000
观察
(1) info memory:内存一直增加,直到benchmark结束,monitor输出完毕,但是used_memory_peak_human(历史峰值)依然很高
(2)info clients: client_longest_output_list: 一直在增加,直到benchmark结束,monitor输出完毕,才变为0
(3)redis-cli -h host -p port client list | grep "monitor" omem一直很高,直到benchmark结束,monitor输出完毕,才变为0
监控脚本:
while [ 1 == 1 ]
do
now=$(date "+%Y-%m-%d_%H:%M:%S")
echo "=========================${now}==============================="
echo " #Client-Monitor"
redis-cli -h 127.0.0.1 -p 6379 client list | grep monitor
redis-cli -h 127.0.0.1 -p 6379 info clients
redis-cli -h 127.0.0.1 -p 6379 info memory
#休息100毫秒
usleep 100000
done
上一篇
下一篇
让自己更优秀的16条法则
kafka高可用机制简介
kafka消息投递语义
集群session处理
分布式数据库主键生成方案
properties与yml配置文件比较