如果Redis可以用到极致

《如果Redis可以用到极致》要点:
本文介绍了如果Redis可以用到极致,希望对您有用。如果有疑问,可以联系我们。

如果Redis可以用到极致

相对于memcache,redis拥有的持久化和多数据类型,非常适合应用于互联网社交、电商等业务较为复杂的系统中.

新浪微博是国内最早(2010年)大规模线上Redis的实践者,到目前已经趋于极致.

可以看这篇干货《用最少的机器支撑万亿级拜访,微博6年Redis优化历程》,我们能借鉴到如何避免大规模应用redis时,会碰到的问题,如:

1、持久化内存消耗导致服务崩溃.

2、主从同步全量加载问题

3、版本升级的问题

当然,文中还提到了特定业务场景下的定制化应用.

微博是从 2010 年开始引入 Redis,现在 Redis 已经广泛应用于微博的多个业务场景,如关系、计数、通知提醒等,目前 Redis 集群存储超过百亿记录,每天上万亿的读取拜访.

持久化问题

在我们大多数业务场景中 Redis 是当做存储来使用,会开启持久化机制.线上采用单机多实例的部署结构,服务器的内存使用率也会比较高.

由于官方版本触发 bgsave 和 bgrewriteaof 操作的时间点是不可控的,依赖于相关的配置项和业务的写入模型,因此可能会出现单机部署的多个 Redis 实例同时触发 bgsave 或 bgrewriteaof 操作,这两个操作都是通过 fork 出一个子进程来完成的,由于 copy-on-write 机制,可能会导致服务器内存很快耗尽,Redis 服务崩溃.

此外在磁盘压力较大时(生成 rdb、aof 重写),对 aof 的写入及 fsync 操作可能会出现阻塞,虽然从 2.4 版本开始 fsync 操作调整到 bio 线程来做,主线程 aof 的写入阻塞仍会导致服务阻塞.

主从同步问题

官方版本的主从同步机制,在网络出现问题时(如瞬断),会导致主从重新进行一次全量复制.

当然官方 2.8 版本支持了 psync 增量复制的机制,一定程度上解决了主从连接断开会引发全量复制的问题

版本升级及管理问题

官方版本在执行升级操作时,需要服务重启,我们大多数线上业务都开启了持久化机制,重启操作耗时较长,加上使用 Redis 业务线比较多,版本升级操作的复杂度很高.

1. 对于持久化机制,采用 rdb + aof 的持久化方式.

aof 文件按固定大小滚动,生成 rdb 文件时记录当前 aof 的 position,全量的数据包含在 rdb 和所记录位置点之后的 aof 文件,废弃 aof 重写机制,生成 rdb 后删除无效的 aof 文件;增加了定时持久化操作的配置项 cronsave,将单机部署的多个 Redis 实例的持久化操作分散在不同的时间点进行,并且错开业务高峰;将对 aof 的写入操作也放到 bio 线程来做,解决磁盘压力较大时 Redis 阻塞的问题.

2. 对于主从同步机制,借鉴 MySQL 的复制机制并做了简化.使用 rdb + aof 的方式,支持基于 aofpositon 的增量复制

================================

老杨有话说

1、真的是业务需求推动技术变革,技术只有持续优化、改进,才能满足业务发展需要,才能体现其价值.

2、即使是再优秀的开源产品,要拿来适配公司业务,还是要深度探究和改进才行.

3、官方提供的redis解决方案,足够满足中小型企业的技术要求,但是如何用到极致,还是需要优秀的人才来打磨.

4、要持久话的数据,能放到mysql就不要扔到redis,当然,除非你对redis的持久化可以像上面他们做的一样靠谱才行.

5、个人还是更倾向于redis的缓存模式和它的多数据结构.

封面人物介绍

拉斯姆斯·勒多夫(Rasmus Lerdorf,1968年11月22日-)是一个丹麦程序员,他拥有加拿大国籍.他就是PHP他爹,PHP的创始人,其中PHP的头两个版本是由他编写的,后来他也参与PHP后续版本的开发.

谁会想到一个原本只是用来网页拜访跟踪的工具,会发展成为世界上最好的语言,所以,没事干了多写写代码,万一被成功了呢?

《如果Redis可以用到极致》是否对您有启发,欢迎查看更多与《如果Redis可以用到极致》相关教程,学精学透。编程之家 jb51.cc为您提供精彩教程。

相关文章

文章浏览阅读1.3k次。在 Redis 中,键(Keys)是非常重要的概...
文章浏览阅读3.3k次,点赞44次,收藏88次。本篇是对单节点的...
文章浏览阅读8.4k次,点赞8次,收藏18次。Spring Boot 整合R...
文章浏览阅读978次,点赞25次,收藏21次。在Centos上安装Red...
文章浏览阅读1.2k次,点赞21次,收藏22次。Docker-Compose部...
文章浏览阅读2.2k次,点赞59次,收藏38次。合理的JedisPool资...