首页 > 解决方案 > 在多个平台上使用 Redis

问题描述

我一直在使用 Redis 来获取项目的统计信息。我正在使用JedisRedis for java,目前用于该项目,但我也想在多个平台(如网站、android 甚至 IOS)中使用相同的 Redis 服务器。该项目经常使用 Redis 来获取和设置。

我的问题

  1. 现在只有一台 Redis 服务器,所以如果我想在多个平台上使用,它必须连接专用服务器,在当前服务器和 Redis 服务器之间存在延迟。我该怎么做?
  2. 我只想为所有连接使用一个 Redis 服务器。它是危险的还是会影响性能?

如果你对这个话题有任何想法,我想听听你的想法!

标签: redis

解决方案


首先; 为了“更好”和水平扩展,您的应用程序服务器不应存储任何数据。如果您的应用程序服务器有MySQL数据库或Redis在其中,那么很难扩展,因为它们不是“无状态的”。如果您想在此设计中添加第二台服务器,那么您不能使用您的数据复制您的应用程序服务器。要使其“无状态”,您必须将数据存储移出应用程序服务器。

  1. 你对此无能为力。延迟是不可避免的。你可以做的是减少它。如果你的 Redis 和应用服务器在同一个区域,那么这不会是一个大问题。如果您的应用程序不需要互联网访问,那么您可以将它们放在同一个 VPC 中。
  2. 这取决于。如果您的“应用程序 A”每秒都在写入大对象,那么“应用程序 B”在读取时会受到影响,因为 Redis 是单线程的。如果您的两个应用程序都只发出快速请求(例如:在小型对象上获取/设置),那么这将不是什么大问题。

如果您对此有所顾虑,可以检查复制以提供更高的可用性。

复制既可以用于scalability,以便为只读查询提供多个副本(例如,可以将慢 O(N) 操作卸载到副本),也可以仅用于提高数据安全性和high availability.


推荐阅读