分布式缓存redis中

2020-01-17  本文已影响0人  Teemo_fca4
1 redis的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的?

(1) 为什么要做持久化?
redis持久化的意义,在于故障恢复
(2) RDB和AOF两种持久化机制
RDB:RDB持久化的方式就是对redis中的数据执行周期性生成一个RDB文件,可以通过加载RDB文件来快速重新构建内存数据 ,事实上redis主从结构中的全量复制就是这样做的。
AOF:AOF机制对每条写入命令作为日志,以append-only的模式写入一个日志文件中,在redis重启的时候,可以通过回放AOF日志中的写入指令来重新构建整个数据集。
通过RDB和AOF,我们可以将备份文件备份到云服务上去 比如阿里云,如果redis挂了,可以从云服务上拷贝回来之前的数据,放到指定的目录中,然后重新启动redis,redis就会自动根据持久化数据文件中的数据,去恢复内存中的数据,继续对外提供服务。如果同时使用RDB和AOF两种持久化机制,那么在redis重启的时候,会使用AOF来重新构建数据,因为AOF中的数据更加完整。

RDB与AOF的机制
(3)两种模式的优缺点
1 RDB持久化的优点

2 RDB持久化机制的缺点

2 redis集群模式的工作原理能说一下么?在集群模式下,redis的key是如何寻址的?分布式寻址都有哪些算法?了解一致性hash算法吗?

(1) 为什么要做redis集群?
在之前的主从架构下,redis所能容纳的数据量是主节点的最大值,这其实也就类似于高可用版本的单机。这个时候就需要集群来横向扩容了。
(2) redis cluster vs. replication + sentinal
如果数据量很少,主要是承载高并发高性能的场景,比如你的缓存一般就几个G,单机足够了
replication,一个mater,多个slave,要几个slave跟你的要求的读吞吐量有关系,然后自己搭建一个sentinal集群,去保证redis主从架构的高可用性,就可以了
redis cluster,主要是针对海量数据+高并发+高可用的场景,海量数据,如果你的数据量很大,那么建议就用redis cluster
(3)数据分布算法:hash , 一致性hash,redis cluster的hash slot

上一篇 下一篇

猜你喜欢

热点阅读