博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis key-value的设计原则
阅读量:3955 次
发布时间:2019-05-24

本文共 685 字,大约阅读时间需要 2 分钟。

key设计建议:

  1. 可读性和可管理性管理(以业务名(或数据库名)为前缀,防止key冲突,用 冒号分割,如表名:id, tbl_person:1
  2. 简洁性,保证语意前提下,控制key的长度,key如果太长,太多,内存占用严重
  3. 不要包含特殊字符:空格,换行,单双引号。

redis key会使用 embstr编码进行压缩!!

在这里插入图片描述

在这里插入图片描述
object key 命令 可以查看对应串的编码

在这里插入图片描述

如果 value过大过长, 会转为 raw编码(低于 39个字节,使用 embstr), 这样会进行特定的内存优化,如果是 int的话,会优化为 int

用 embstr ,可以节省一定的内存开销

value设计原则:

  1. 拒绝bigkey
  2. 选择合适的数据结构
  3. 过期设计

强制规范:

  • string类型控制在10KB以内
  • hash,list,set,zset元素个数不要超过5000
  • 反例:一个包含几百万个元素的list,hash等,一个巨大的json字符串

bigkey 的危害

  1. 网络阻塞
  2. redis阻塞
  3. 集群节点数据不均衡
  4. 频繁序列化:应用服务器CPU消耗

在这里插入图片描述

如何发现 bigKey

  1. 程序应用报异常日志
  2. redis-cli --bigkeys
  3. debug object 的方法
  4. 网络流量监控,客户端监控

redis 周期数据设置过期时间,object idle time 可以查找 key-value

过期时间不宜集中: 缓存穿透和雪崩等问题(具备例子,你应该 jedis.set(k, v, time+ randomTime() ) )

要加一个随机值,打散 过期时间(使得时间尽量的均匀),防止缓存雪崩

转载地址:http://gmuzi.baihongyu.com/

你可能感兴趣的文章
"巧"仿蚂蚁森林水滴动效
查看>>
用算法撩妹都不会,别跟我说你是程序员
查看>>
高盛发布区块链报告:从理论到实践(中文版)
查看>>
“揭秘”大数据的10个神话!
查看>>
支付宝宣布:狗年还玩五福!全网第一份集福攻略在这里
查看>>
斯坦福大学10张图剖析人工智能发展新趋势
查看>>
分析千万条数据后,终于找到了北上广深租金最低的地铁房
查看>>
使用 Charles 抓取 app 数据包
查看>>
未来,改变世界的将是这些......
查看>>
2018年大数据趋势
查看>>
重磅!阿里开源AI核心技术,95%算法工程师受用
查看>>
大数据揭示年度学霸画像:大家都在学什么?
查看>>
各领域机器学习数据集汇总(附下载地址)
查看>>
如何运用Python建一个聊天机器人?
查看>>
用Python从零开始创建区块链
查看>>
【收红包】最新最全!春节抢红包攻略:又到参与几个亿项目的时候了…
查看>>
从数据分析的角度看旅行青蛙还可以这么玩。。。
查看>>
人民日报:让中国大数据跑起来!
查看>>
百度地图大数据告诉你一线城市真相
查看>>
大数据 勾勒中国人“的亲情地图”!
查看>>