在本地缓存redis集群

时间:2017-06-13 09:07:38

标签: caching redis

我有一个我们想要使用redis的情况,但我不确定如何设置它。以下是我们最终想要实现的目标:

  1. 一个冗余的中央redis群集,其中所有写入都将发生在两个aws区域中的服务器上。

  2. 服务器上的本地redis缓存,它将包含完整中央群集的副本。

  3. 这样做的原因是我们有许多服务器只需要读访问权限,我们希望它们即使在中断的情况下也是独立的(服务器无法到达主群集)。

    我知道可能会有一个陈旧的数据"关于缓存的问题,但只要我们得到最终的一致性,我们就可以容忍。

    使用redis实现类似内容的正确方法是什么?

    谢谢!

2 个答案:

答案 0 :(得分:1)

您需要 Redis Replication (Master-Slave) Architecture

Redis复制:

Redis Master Slave Architecture

Redis复制使用非常简单,并且可以配置主从复制,允许从属Redis服务器成为主服务器的精确副本。以下是有关Redis复制的一些非常重要的事实:

  • Redis使用异步复制。但是,从Redis 2.8开始,从站会定期确认从复制流处理的数据量。
  • 主人可以有多个奴隶。
  • 奴隶能够接受来自其他奴隶的连接。除了将多个从站连接到同一个主站之外,还可以将从站连接到类似级联结构的其他从站。
  • Redis复制在主端无阻塞。这意味着当一个或多个从服务器执行初始同步时,主服务器将继续处理查询。
  • 复制在从属端也是非阻塞的。当slave正在执行初始同步时,它可以使用旧版本的数据集处理查询,假设您在redis.conf中配置了Redis。否则,您可以将Redis从属配置为在复制流关闭时向客户端返回错误。但是,在初始同步之后,必须删除旧数据集并且必须加载新数据集。从站将在此简短窗口期间阻止传入连接(对于非常大的数据集,可能长达数秒)。
  • 复制可以用于可伸缩性,以便为只读查询提供多个从站(例如,可以将慢速O(N)操作卸载到从站),或者仅用于数据冗余。
  • 可以使用复制来避免让主服务器将完整数据集写入磁盘的成本:典型的技术是配置主服务器redis.conf以避免持久存储到磁盘,然后连接配置为从存储器保存的从服务器不时或启用AOF。但是,必须谨慎处理此设置,因为重新启动的主服务器将以空数据集开始:如果从服务器尝试与其同步,则从服务器也将被清空。

完成以下步骤: How to Configure Redis Replication

答案 1 :(得分:1)

所以我决定选择include

使用redis-sentinel我可以将缓存服务器上的redis-sentinel设置为0,这将阻止它们成为主人。

我将有一个主设置,以及一些“备用主设备”实际上是从设备slave-priority设置为非0的值,这将允许它们在主设备发生故障时接管

哨兵将监视主人,一旦主人关闭,它将推广其中一个“备用主人”并将其推广为新主人。

可以找到更多信息here

相关问题