为什么说中小公司自建Redis是一件不太靠谱的事情?

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 自建Redis有哪些缺点?

上段时间,和数据库领域的一些朋友交流,他告诉云栖社区,XX厂商自建Redis出问题了,并表示最近不少自建Redis的中小公司也都陆续出问题。

对于为什么会出现这样现象,云栖社区记者就此采访了阿里云数据库高级技术专家子嘉,他谈了问题的根源——自建Redis的缺点:

  1. 可靠性低:如果数据走云盘做高可靠存储容易受网络波动干扰,如果不走云盘宕机数据易丢失,自建多副本运维很复杂,而且Redis本身的断网导致的全量同步机制对网络和运维的要求极高;
  2. 可用性低:自建单副本无法保证可用性,多副本对心跳检查和链路切换要求极高,传统的sentinel有很多缺陷,在执行复杂的keys flushdb等命令时很容易造成误切和雪崩;
  3. 诸多限制:自建集群方案如redis cluster,codis也有诸多限制,redis cluster需要smart client和非常专业的运维能力,codis的zk部署也相对比较重,而且为了容灾也要去做副本的HA,而目前的HA和上述sentinel有同样的问题;
  4. 安全性:自建Redis容易受到安全攻击,比如config set漏洞问题,lua安全漏洞等问题,当出现故障时也无法得到有效地救援和解决;
  5. 产品本身:从产品上,自建Redis无法实现弹性扩缩容,或者过程非常复杂,并且在扩缩容的过程中也非常容易出问题。

子嘉指出,而最根本的问题是如果要达到上述的可靠性、可用性与安全性,客户需要在看得见的成本之外付出更多的运维成本,而且还需要组建一直完备的技术团队。

他认为,对可靠性、可用性、安全性、资源弹性有诉求的产品,选用云Redis则是不二选择,尤其是阿里云Redis,因为它有以下优点:

  1. 云Redis采用两副本+备份的方式保证数据可靠性,本地SSD磁盘保证稳定性和性能,还有一整套的运维体系,针对原生Redis的缺点在内核上做了很多改进;
  2. 云Redis通过优化内核+自主研发HA来解决复杂命令超时问题,保证不会误切换,而且当主节点有故障发生时,会有秒级链路切换,最大保证可用性;
  3. 云Redis自主研发的集群模式兼容所有版本开源客户端,对client没有要求,接入方式和主从版一样,支持的命令也要比上述两个版本多,对于大家比较关心的成本问题,阿里云Redis也在推出小内存大QPS来解决
  4. 云Redis自主研发版本经过阿里内部安全渗透测试,而且在出问题时也会有一直专业的内核团队7*24及时救援和服务

在问题之外,子嘉也提到,因稳定、收缩强,阿里云云数据库Redis(Kvstore)版还曾获得央视技术保障商点赞,并特意发了一封感谢信过来,称赞阿里云Redis很强的伸缩能力和服务(相关报道见:因稳定、收缩强 阿里云云数据库Redis(Kvstore)版获央视技术保障商点赞)。

作为阿里云云数据库Redis技术负责人,他除了希望大家都能试试阿里云Redis的服务之外(阿里云Redis官网),也欢迎厂商或个人一起探讨Redis领域的技术难题。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
NoSQL 数据可视化 Java
一次Redis生产事故,公司损失百万
一、前因 公司有个核心项目redis的客户端一直是使用的jedis,后面技术负责人要求把jedis客户端替换成效能更高的lettuce客户端,同时使用spring框架自带的RedisTemplate类来操作redis。 然而世事难料,就是这么一个简单的需求却让老师傅翻了船。。。
|
运维 NoSQL 安全
一个致命的 Redis 命令,导致公司损失 400 万!!
最近安全事故濒发啊,前几天发生了《顺丰高级运维工程师的删库事件》,今天又看到了 PHP 工程师在线执行了 Redis 危险命令导致某公司损失 400 万。。
|
存储 缓存 NoSQL
大厂和初创公司都在用!Redis好在哪?终于有人讲明白了
Redis从一个不为人熟知、只有少量应用的崭新数据库,逐渐变成了内存数据库领域的事实标准。时至今日,经过大量的实践应用,Redis简洁高效、安全稳定的特性已经深入人心。
|
NoSQL 安全 数据库
一个致命的Redis命令,导致公司损失400万!!
最近安全事故濒发啊,前几天发生了“ 顺丰高级运维工程师的删库事件 ”,今天又看到了PHP工程师在线执行了Redis危险命令导致某公司损失400万.
1342 0
|
安全 NoSQL Java
一个致命的 Redis 命令,导致公司损失 400 万!!
最近安全事故濒发啊,前几天发生了《顺丰高级运维工程师的删库事件》,今天又看到了 PHP 工程师在线执行了 Redis 危险命令导致某公司损失 400 万。
1244 0
|
NoSQL 数据库 Redis
一个致命的 Redis 命令,导致公司损失 400 万!!
最近安全事故濒发啊,前几天发生了《顺丰高级运维工程师的删库事件》,今天又看到了 PHP 工程师在线执行了 Redis 危险命令导致某公司损失 400 万。。 什么样的 Redis 命令会有如此威力,造成如此大的损失? 具体消息如下: 据云头条报道,某公司技术部发生 2 起本年度 PO 级特大事故.
1614 0
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
68 6
|
1天前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构
下一篇
无影云桌面