Redis

关注公众号 jb51net

关闭
首页 > 数据库 > Redis > Redis集群的三种部署方式

Redis集群的三种部署方式及三种应用问题的处理

作者:云淡风qin

这篇文章主要介绍了Redis集群的三种部署方式及三种应用问题的处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Redis集群部署三种方式

1. 主从复制

主机数据更新后根据配置和策略, 自动同步到备机的 master/slaver 机制,Master 以写为主,Slaver 以读为主。

主从复制

优点:

缺点:

2. 哨兵模式

使用Sentinel,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。

哨兵模式

优点:

3. redis-cluster模式

1.无中心化集群配置( redis3.0

2.集群由多个节点(Node) 组成,Redis 的数据分布在这些节点中。

3.集群中的节点分为主节点和从节点;只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。

redis-cluster模式

优点:

缺点:

Redis应用的三种问题,穿透、击穿、雪崩

缓存穿透

key 对应的数据在数据源并不存在,每次针对此 key 的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。

比如用一个不存在的用户 id 获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。

造成:

解决:

对空值缓存

设置可访问的名单(白名单):

采用布隆过滤器

进行实时监控

缓存击穿

key 对应的数据存在,但在 redis 中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB 加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端 DB 压垮。

如何解决

缓存雪崩

缓存雪崩是指在我们设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到DB,DB瞬时压力过重雪崩。 

解决

构建多级缓存架构 

使用锁或队列:

设置过期标志更新缓存:

将缓存失效时间分散开:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文