Redis 最后一课
Redis 学习笔记最后一篇,Redis 使用规范建议和经验学习以及运维工具。极客时间《Redis 核心技术与实战》专栏学习笔记 25,部分已经作为留言发布,但是留言太多,排在后面的一般很难被大家看到,所以集中发布在这里,欢迎讨论。
题图来自 《万亿级日访问量下,Redis 在微博的 9 年优化历程 》
加餐(六)| Redis 的使用规范小建议
好像没怎么看到过 bigkey 的标准定义,之前误以为真的是"key"太大,后来才发现是 value 太大。
键值对使用规范
key 命名规范:业务名作前缀,冒号分隔,加业务数据名,尽量避免数据库切换。key 的长度最好不超过 31(SDS 结构元数据大小 1 字节)
避免使用 bigkey:String 类型的数据控制在 10KB 一下,集合类型的元素个数控制在 1 万以内。
使用高效的序列化和压缩方法:protostuff 和 kryo 优于 Java 内置的 java-build-in-serializer;如果使用 XML 或者 JSON 可以考虑压缩,snappy 或 gzip
使用整数对象共享池:在满足业务数据需求的前提下,尽量用整数
数据保存规范
使用 Redis 保存热数据
不同的业务数据分实例存储
保存数据时,设置过期时间
控制 Redis 实例的容量,2~6 GB
命令使用规范
线上禁用部分命令:KEYS、FLUSHALL、FLUSHDB
慎用 MONITOR
慎用全量操作命令
课代表 @Kaito 大神的 Redis 使用规范值得收藏。
加餐(七) | 从微博的 Redis 实践中,我们可以学到哪些经验?
顺着专栏给的链接,先去看了《万亿级日访问量下,Redis在微博的9年优化历程》,虽然没有机会面对类似微博这样的体量(2019 年 100T+ 存储、1000+ 台物理机、10000+ Redis 实例、万亿级读写、响应时间 20 毫秒),但是也算是大开眼界。
其实原文中的那个缓存、存储、队列技术选型流程图,就很有价值。
分享的很多内容不明觉厉,结合专栏的解析来看,可以感觉到微博团队在 Redis 运维方面做的比较深入。有一点疑问就是,基于 Redis 的早期版本做了很多二次开发,那么是否能够和 Redis 的新版本兼容?或者说是否反馈回了开源社区?
老师最后总结的业务纵切、平台横切很有高屋建瓴的味道,当然,最终还是要靠代码实践。
有一点好奇,一般分享都是大厂如何在高性能、大容量和可扩展方面应用 Redis,有没有人分享过“小厂”是如何使用 Redis,直接拿开源版本上生产环境么?可能也够用。
希望以后有机会能回答课后题中关于 Redis 的优化和二次开发的问题。
版权声明: 本文为 InfoQ 作者【escray】的原创文章。
原文链接:【http://xie.infoq.cn/article/3e757cf23ad5a00395bbb3c48】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论