内存缓存 VS.分布式系统中的集中缓存 [英] In-memory cache VS. centralized cache in a distributed system

查看:43
本文介绍了内存缓存 VS.分布式系统中的集中缓存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们目前正在寻找访问分布式系统上的关键数据的最合适的解决方案,并且我们正在考虑是使用内存缓存还是集中式缓存.

We're currently looking for the most suitable solution for accessing critical data on a distributed system, and we're considering whether to use in memory caching, versus a centralized cache.

关于我们希望存储/访问的数据的一些信息:

Some information about the data we wish to store/access:

  • 非常小的数据量
  • 数据很冷;这意味着它几乎没有变化,并且只有当我们的后台系统中的某个人发生变化时才会发生变化
  • 更改时必须是最新的(几个 100 毫秒的延迟是可以的)
  • 我们的应用程序非常关键的路径,需要非常高的 SLA(可靠性和响应时间(访问时间不超过 20 毫秒))
  • 频繁读取数据(每秒高达数千次)

我们看到的方式如下 -

The way we see it is as following -

内存缓存

优点:

  • 比网络访问 + 序列化更快
  • 在分布方面具有更高的可靠性(如果一个实例死亡,其他实例上的数据仍然存在)

缺点:

  • 编码和维护要复杂得多
  • 需要在发生变化时通知实例,需要单独更新每个实例 + 需要在每个服务器启动时加载数据
  • 增加数据不一致的高风险(一个实例的数据与其他实例不同或过时)

集中缓存

为了便于交流,我们已经考虑使用 Redis.

For the sake of conversation, we've considered using Redis.

优点:

  • 维护更简单
  • 非常可靠,我们有很多在分布式系统中使用 Redis 的经验
  • 只有一处更新
  • 确保数据一致性

缺点:

  • 单点故障(这是我们的一个大问题);即使我们采用这个解决方案,我们也会部署一个集群
  • 如果由于某种原因刷新缓存会发生什么

推荐答案

我认为使用 Redis 进行集中缓存没有任何问题.

I don't find any problem in going for a centralized cache using Redis.

  1. 无论如何,您将有一个集群设置,因此如果主站出现故障,从站将占据该位置.
  2. 如果缓存由于某种原因被刷新,那么您必须构建缓存,同时请求将从主要来源 (DB) 获取数据
  3. 可以开启持久化,加载磁盘中持久化的数据,秒级获取数据(即插即用).如果您认为会有不一致之处,请按照以下方法操作.

即使缓存不可用,系统也应该工作(显然有延迟时间).这意味着应用程序逻辑应该检查 redis 中的缓存,如果它不存在或系统本身不可用,它应该从 dB 获取值,然后将其填充到 redis,然后提供给客户端.

Even if cache is not available system should work (with delayed time obviously). Meaning app logic should check for cache in redis if it's not there or system itself is not available it should get the value from dB and then populate it to redis and then serve to the client.

通过这种方式,即使您的 redis master 和 slave 宕机,您的应用程序也能正常工作,但会出现延迟.而且您的缓存也将是最新的.

In this way even if your redis master and slave are down your application will work fine but with a delay. And also your cache will be up to date.

希望这会有所帮助.

这篇关于内存缓存 VS.分布式系统中的集中缓存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆