没有合适的资源?快使用搜索试试~ 我知道了~
redis开发规范 精讲 精华部分
1 下载量 37 浏览量
2022-12-19
19:28:10
上传
评论
收藏 554KB PDF 举报
温馨提示
试读
8页
前言 在业务中,会经常使用 redis 作为后端缓存、存储。如果结构规划不合理、命令使用不规范,会造成系 统性能达到瓶颈、活动高峰系统可用性下降,也会增大运维难度。这里总结了一些使用规范,希望能从 源头上避免上述问题的出现。 存储选型 Redis是一个单进程、基于内存、弱事务(单个命令可以保证原子性,多命令无法保证)的NoSql存储系 统,适用于高QPS、低延迟、弱持久化的场景,适宜用作缓存。 从经验出发: 在qps>5000、容量<50G、存储高频数据时考虑redis;在qps<1000、存储大量低频数 据、需要事务时考虑Mysql。
资源推荐
资源详情
资源评论
前言
在业务中,会经常使用 redis 作为后端缓存、存储。如果结构规划不合理、命令使用不规范,会造成系
统性能达到瓶颈、活动高峰系统可用性下降,也会增大运维难度。这里总结了一些使用规范,希望能从
源头上避免上述问题的出现。
存储选型
Redis是一个单进程、基于内存、弱事务(单个命令可以保证原子性,多命令无法保证)的NoSql存储系
统,适用于高QPS、低延迟、弱持久化的场景,适宜用作缓存。
从经验出发: 在qps>5000、容量<50G、存储高频数据时考虑redis;在qps<1000、存储大量低频数
据、需要事务时考虑Mysql。
一、键值设计
1. key名设计
(1)【建议】: 可读性和可管理性
以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id
(2)【建议】:简洁性
保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视, key的长度不超过100个字
符。,例如:
(3)【强制】:不要包含特殊字符
反例:包含空格、换行、单双引号以及其他转义字符
(4)【强制】: 控制key的总数量
redis实例包含的键个数建议控制在1千万内,单实例的键个数过大,可能导致过期键的回收不及时。
2. value设计
(1)【强制】:拒绝bigkey(防止网卡流量、慢查询)
string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000。
反例:一个包含200万个元素的list。
非字符串的bigkey,不要使用del删除,使用hscan、sscan、zscan方式渐进式删除,同时要注意防止
bigkey过期时间自动删除问题(例如一个200万的zset设置1小时过期,会触发del操作,造成阻塞,而且
该操作不会不出现在慢查询中(latency可查))。
(2)【推荐】:选择适合的数据类型。
ugc:video:1
user:{uid}:friends:messages:{mid}简化为u:{uid}:fr:m:{mid}。
资源评论
浮生(FS)
- 粉丝: 323
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功