Redis学习之开发规范

key名设计

  • 可读性和可管理性,以业务名或数据库名为前缀防止key冲突,用冒号分隔。例子业务名:表名:id,比如ugc:video:1
  • 简洁性,保证语义的情况下,尽量缩减key的长度
  • 不要包含特殊字符,空格,换行,单双引号

value的设计

  • string类型控制在10kb,hash,list,set,zset元素个数不要超过5000

big key 的发现:

redis-cli --bigkeys

debug object key

big key 的删除 :

scan 游标遍历删除

命令的优化

客户端的优化

  • 避免多个应用使用同一个redis实例

连接池参数优化

maxIdl 接近maxTotal即可

合理计算连接数

内存优化

 输出缓冲区的配置

普通客户端缓冲区:

默认 client-output-buffer-limit normal 0 0 0

默认没有限制客户端缓冲

防止大的命令或者monitor

slave客户端缓冲区:

默认 client-output-buffer-limit slave 256mb 64mb 60

阻塞:主从延迟较高,或者从节点过多

pubsub客户端缓冲区:

默认 client-output-buffer-limit slave 32mb 8mb 60

阻塞:生产大于消费

复制缓冲区

AOF缓冲区

 内存管理

设置最大内存,超过后由maxmemory-policy控制。

内存回收:惰性删除,定时删除。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章