在多线程专用服务器上优化Redis

时间:2012-09-26 10:26:58

标签: redis

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

由于

1 个答案:

答案 0 :(得分:2)

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

  • pidfile进程文件
  • 端口
  • unixsocket
  • 日志文件
  • dbfilename(或者dir)

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

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