Redis与应用内缓存

本文关键字:缓存 应用 Redis | 更新日期: 2023-09-27 18:21:45

使用Redis缓存userId UserName对、NewsId NewsDomainName等数据有哪些优点和缺点?为什么我不应该在应用程序内存中缓存这些数据,而不是为其创建词典?我认为它一定比使用redis快得多?非常感谢。

Redis与应用内缓存

根据您的工作负载,您可能需要其中一种或另一种,或者两种缓存策略的组合。为什么?

  • 进程内缓存更快(有利于延迟),更重要的是,它不会产生任何网络流量来获得成功(有利于可扩展性)
  • 远程缓存,Redis或类似的缓存,允许您保留所有服务器访问的缓存数据的一个副本*,因此它使用更少的内存(除非您只有一个应用程序服务器,这似乎不太可能),并且不太容易出现数据不一致问题(如果您处理用户数据,这似乎很重要)

在缓存集群中,或任何对特定数据段的请求发送到一小部分服务器的数据集群中,最大的问题之一是热点。在这种情况下,您可能希望将这两种方法结合起来——在本地缓存热键,但时间很短,以防止后端服务器不堪重负,但时间不会太长,从而导致长时间提供过时的数据。

*尽管如此,如果集群中有多个缓存服务器,并且集群管理具有服务器弹出/重新接纳逻辑,但没有数据刷新逻辑,那么某些服务器上可能存在过时的数据。

如果有多个服务器怎么办?你的第二台服务器知道第一台服务器中存储了什么吗?没有。这可能是您需要使用redis的主要原因。

如果您在服务器中存储了大量数据,也可能会影响服务器性能