写点什么

Redis 最后一课

用户头像
escray
关注
发布于: 2021 年 04 月 09 日
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 的优化和二次开发的问题。

发布于: 2021 年 04 月 09 日阅读数: 24
用户头像

escray

关注

Let's Go 2017.11.19 加入

Let's Go,用 100 天的时间从入门到入职

评论

发布
暂无评论
Redis 最后一课