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

标签 redis

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

谢谢

最佳答案

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

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

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

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

关于redis - 在多线程专用服务器上优化 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12599641/

相关文章:

redis - 如果另一个键中的计数器低于零,则以原子方式从集合中删除一个项目?

configuration - 如何让 redis-server 在重新启动时刷新所有数据?

java - 具有集群支持的 Spring Data Redis

Node.js redis 订阅内存泄漏

php - 在 php 中使用多维数组的 Redis

node.js - 我想使用 NodeJS 中的 redis 库在 Redis 中的 hset 特定键中设置 Expiry

Redis Cluster vs Twemproxy - 移动响应

docker - 无法连接到 docker redis

c# - 外部(互联网)Pub Sub

python - 使用 redis-py 的复杂对象