您现在的位置是:娱乐 >>正文
redis集群三种方式
娱乐114人已围观
简介Redis集群从来不是一道选择题,而是一道应用题。单机Redis再快,内存也有天花板,数据量一旦冲到几十GB,RDB持久化时的停顿就能让线上服务抖成筛子。这时候,集群方案就成了绕不开的坎。市面上的主流 ...
Redis集群从来不是群种一道选择题,而是群种一道应用题。单机Redis再快,群种内存也有天花板,群种数据量一旦冲到几十GB,群种RDB持久化时的群种停顿就能让线上服务抖成筛子。这时候,群种集群方案就成了绕不开的群种坎。市面上的群种主流路子就三条:主从复制、Sentinel哨兵、群种Cluster集群。群种三条路各有脾气,群种选错了,群种运维能半夜被报警电话炸醒。群种
先说说最朴素的群种主从复制。一台主库负责写,几台从库负责读,数据像流水一样哗哗地同步过去。这方案解决的是读压力,不是存储压力。我见过不少团队把主从当成万能药,结果主库内存还是顶不住,从库再多也只是把读流量分摊了,写瓶颈纹丝不动。更坑的是,主库一旦宕机,从库不会自动转正,得靠人肉切换。凌晨三点爬起来改配置,那滋味谁试谁知道。这方案适合啥场景?读多写少、数据量可控、能接受分钟级故障恢复的小业务。
Sentinel哨兵模式算是给主从装了个自动挡。哨兵节点像保安一样盯着主库,心跳一断,立刻开会投票,从一堆从库里挑个新的当老大,客户端再通过哨兵重新发现新主库。这套机制解决了高可用,但存储上限还是没动——主库还是单点,内存照样撑死。而且哨兵本身也有坑,比如脑裂问题:主库网络抖动,哨兵误判挂了,提拔了新主库,老主库恢复后又开始写数据,两边数据就对不上了。Redis的min-replicas-to-write参数能缓解,但很多人根本没配。说句实话,Sentinel适合中小规模、对可用性有要求、但数据量还在单机承受范围内的业务。
真正扛大旗的是Cluster集群。它把数据按哈希槽切成了16384个格子,每个节点管一部分槽位,读写请求直接路由到对应节点。数据量可以横向扩,加节点就重新分配槽位,存储天花板被彻底掀翻了。但Cluster的代价是逻辑复杂度陡增。客户端得处理重定向错误,不支持多键操作(除非key都带同一个hash tag),事务和Lua脚本的限制也让人挠头。我见过一个团队把Cluster搭起来后,发现原来用MGET批量查询的接口全废了,业务代码改了一个星期才跑通。更隐蔽的是,Cluster的节点间通信走的是Gossip协议,节点多了以后,网络抖动可能导致频繁的failover,而failover期间的延迟抖动,对毫秒级接口就是灾难。
三条路摆在一起,其实没有谁绝对碾压谁。主从是省钱省心的入门款,Sentinel是给主从加了保险丝,Cluster是冲着海量数据去的重武器。我的个人判断是:数据量在10GB以下、QPS几千的,主从加个手动切换脚本就够用,别瞎折腾。数据量上了50GB、需要自动故障转移的,Sentinel是性价比之王。至于Cluster,除非你的数据量奔着几百GB去,或者QPS要破十万,否则别轻易碰——分布式带来的复杂度,远比省下的那点运维成本更烧脑。选型的时候,多问问自己:未来两年数据量真能涨到需要Cluster吗?如果只是“可能”,那不如先留着主从,等真撞到内存墙的那天,再迁移也不迟。毕竟,Redis集群的迁移,可比换数据库温柔多了。
Tags:
相关文章
百度关键词竞价推广
娱乐百度关键词竞价推广,说白了就是花钱买位置。你出价高,你的广告就排在搜索结果前面。这个逻辑简单粗暴,但里面水深得很。 我见过太多人栽在竞价上。有个做机械配件的老板,每天烧两三千块钱,咨询电话响个不停,可 ...
【娱乐】
阅读更多getinteger方法
娱乐getinteger方法 凌晨三点,我盯着控制台上那个跳动的红色异常——NullPointerException。这已经是本周第三次了,原因都一样:用户提交表单时,某个数字字段传了个空字符串。后端代 ...
【娱乐】
阅读更多郑州皇家一号有都多黄
娱乐2013年11月1日晚上十点,郑州东风路上的皇家一号门口停着十几辆警用大巴。便衣从后门进去的时候,大厅里穿着金色亮片裙的姑娘们还在排队等台。那晚之后,这个号称“中原第一夜场”的地方再没亮过灯。 皇家一 ...
【娱乐】
阅读更多