概述
-
目录
什么是redis高速缓存
Redis介绍
Redis集群介绍
RedisCluster
RedisCluster集群示意图
Redis主从同步
主从同步
Redis集群高可用
-
什么是redis高速缓存
- 高速缓存利用嫩保存数据,读写速度远超硬盘
- 高速缓存可以减少I/O操作,降低I/O压力
例子1:发红包和抢红包就用到了高速缓存,假如不是用告诉缓存的话,发红包的记录就要写到数据库里面,发起抢红包的请求,腾讯后台服务器就要读取这条红包记录,然后大家一起瓜分红包金额,过年量大的对于数据库压力十分大。
例子1:打开首页APP首页的一些内容,有些是从redis加载,有些是从数据库加载,比如说一些促销秒杀的热门商品,这些是共性的商品,大家都能看到的,就从redis高速缓存里面去取;淘宝还有基于大数据的内容推荐商品,这些不是共性商品,是你喜欢的商品,这些就从数据库里取。告诉缓存不一定是redis。
-
Redis介绍
- Redis是Wmware开发的开源免费的KV型NoSQL缓存产品
- Redis具有良好的性能,最多可以提供10万每秒的读写
- 目前新浪微博团队组建了世界上最大规模的Redis集群(比如说很多热点数据)
-
Redis集群介绍
- Redis目前的集群方案分为以下几种:
- RedisCluster:官方推荐,没有中心节点(我们之前用过pxe集群,pxe集群就是没有中心节点的,比如说数据库里面,有一部分中心节点挂掉了,剩余的节点如果超过半数,选举出来一个主节点,其它的节点和这个主节点同步数据,注意这个主节点不是中心节点,朱姐点就是说保存的数据是最新的,保存的数据最多,剩余节点和主节点同步数据,同步之后主节点就消失了,集群里面就没有主节点了,所以主节点不是中心节点)
- Codis:中间件产品,纯在中心节点(360公司退出的,中心节点一旦挂掉之后,整个Redis集群就不能用了)
- Twemproxy:中间件产品,存在中心节点(比Codis老)
所以权衡之后本门课程采用的方案是RedisCluster。
-
RedisCluster
- 无中心节点,客户端与redis节点相连,不需要中间代理层(redis每个节点都是可读可写的);
- RedisCluster数据可以被分片存储,就是说每一个节点存储的数据不一样(假如说redis集群有三个节点abc,abc存储的数据会不一样,也就是说存储的数据会被切分到不同的redis节点上面。如果说abc3个节点任何一个节点挂掉,会不会损失数据呢,会的!为了避免这种情况,就要为abc3个节点,分别设置冗余节点【即备份】,如果a节点挂掉了,冗余节点继续提供a节点的服务。);
- 管理方便,后续可自行增加或摘除节点。
-
RedisCluster集群示意图
图里面用到三节点redis构成一个redis集群,是为了避免某一个节点出现故障【数据丢失】,所以我们要为这三个节点配置冗余节点,所以算下来整个RedisCluster集群用到了六个节点的redis。正常进行业务操作的redis节点叫做主节点【Master】,和主结点进行数据同步的叫做从节点【Slave】。
-
Redis主从同步
-
主从同步
之前说了是切分存储,即每一个节点存储数据不一样,一点挂掉即丢失,就用到了冗余节点。
- Redis集群中的数据库复制是从主从同步来实现的;
- 主节点【Master】把数据分发给从节点【Slave】;
- 主从同步的好处在于高可用,节点有冗余设计。
-
Redis集群高可用
- Redis集群中应该包含奇数个Master,至少应该有三个Master(因为选举机制,上面有讲到);
- Redis集群中每个Master都应该有Slave(通过客户端连接到第一个master,向第一个master写入数据,它会计算这个mast数据应该切分到哪个master节点上,如果说存储到第一个master节点上面,它就会保存,然后他就会复制到对应的slave节上,经过计算这个数据不应该存储在当前的master节点上,第一个master节点就会将数据发给其他master节点上去存储,经过复制对应slave节点也同步了数据,所以跟大家说,在RedisCluster集群里面,我们通过客户端连接任何的master都可以读写数据,不管这个数据是否应该保存这个master,还是不应该保存在这个master上,正常向master写入数据即可)
Q1:RedisCluster集群怎么不去配置负载均衡呢?数据库配置了负载均衡,redis为什么不配置负载均衡呢?
A1:我们采用的前后端分离项目,后台采用的是Spring架构,Spring程序里面已经帮我们实现了负载均衡。
最后
以上就是粗心流沙为你收集整理的Docker虚拟机入门(三)--3.1 Redis 高速缓存介绍的全部内容,希望文章能够帮你解决Docker虚拟机入门(三)--3.1 Redis 高速缓存介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复