3

我将在具有 6 核、12 线程和 32 GB RAM 的专用服务器上运行 redis。我使用 redis 作为主数据存储。应用程序有许多哈希、集合和列表,但它们都构成同一个应用程序。为了利用所有线程,我可以在不同的端口上启动多个 redis 实例并为每个实例分配一些 redis 结构吗?这会有什么问题吗?我想在我的客户端代码中,我必须在不同的端口上建立多个连接来读取/写入应用程序数据..

谢谢

4

1 回答 1

2

Redis 是单线程的,您需要启动多个实例以利用多核或多 CPU 的优势。必须使用不同的端口,您可能还需要更改配置文件中的一些其他参数以避免冲突:

  • pid文件
  • 港口
  • unixsocket
  • 日志文件
  • dbfilename(或 dir)

在客户端代码中,每个 Redis 实例至少需要一个连接。

主要问题是一旦在不同的实例中添加了一些键,您就不能再运行涉及多个键的命令而不首先检查所有键是否在同一个实例上(例如,您不能再计算存储在不同 Redis 实例上的集合的交集,至少不使用 SINTER 命令)。

于 2012-09-26T16:34:13.550 回答