Redis在互联网大数据平台有着广泛的应用,主要被用来缓存热点数据,避免海量请求压垮数据库,同时可以提升服务节点的响应速度和并发量。
我们公司也基于Redis搭建自己的缓存服务。
简单来说,我们使用的是 SmartSDK + DeveProxy(自定义开发) + Redis Master/Slave的模式。
对Redis各种玩法有了解的小伙伴应该知道,随着数据量的增多,由于redis是占用单台物理机或虚机的内存,内存资源是有限的,要动态地扩容缩容,就需要用到redis集群。
当前好买财富的分布式缓存采取的是 “方案三”,下面我以Java语言为基础,简单的介绍下经历过的其他三种Redis方案。
一、直连 - 客户端分片,Redis单节点
优点
缺点
二、直连 - 客户端直连Redis集群
Redis 3.0.0 在 2015 年 4 月 2 日正式发布,距今已有两年多的时间。Redis 集群采用 P2P 模式,无中心化。把 key 分成 16384 个 slot,每个实例负责一部分 slot。客户端请求对应的数据,若该实例 slot 没有对应的数据,该实例会转发给对应的实例。另外,Redis 集群通过 Gossip 协议同步节点信息。
优点:
缺点:
三(*)、代理 - 通过自研代理服务,转发Redis主/从
优点
缺点
四、代理 - 通过自研代理服务,转发Redis集群
优点
缺点
以上四种方式,在我所经历的应用场景中,曾被多次使用,但很明显,或许是因为有着自研情怀,我跟愿意选择具有自研基础的线路。
当然,也在业内听过其他朋友使用过一些成熟的开源产品。
五、开源 - Codis
Codis 是由豌豆荚开源的产品,涉及组件众多,其中 ZooKeeper 存放路由表和代理节点元数据、分发 Codis-Config 的命令;Codis-Config 是集成管理工具,有 Web 界面供使用;Codis-Proxy 是一个兼容 Redis 协议的无状态代理;Codis-Redis 基于 Redis 2.8 版本二次开发,加入 slot 支持,方便迁移数据。
From: https://github.com/CodisLabs/codis
优点:
缺点:
参考文章:
https://www.linuxprobe.com/redis-high-availability.html
https://blog.csdn.net/u011277123/article/details/55002024