这是可行的还是会降低 CPU 性能?
我想这样做的原因是预分片。我想在许多(128 个,或者可能是 256 个)Redis 实例上分割我的数据,然后在同一台服务器上运行它们。然后,当我需要扩展时,我可以启动更多服务器并轻松地将实例移动到其他服务器。
我知道 Redis 本身的内存占用很小,因此内存开销可能不会成为问题。但如果我只有 4 个核心,它们会处理数百个 Redis 实例吗?或者我应该每个核心最多维护一个实例?
这是可行的还是会降低 CPU 性能?
我想这样做的原因是预分片。我想在许多(128 个,或者可能是 256 个)Redis 实例上分割我的数据,然后在同一台服务器上运行它们。然后,当我需要扩展时,我可以启动更多服务器并轻松地将实例移动到其他服务器。
我知道 Redis 本身的内存占用很小,因此内存开销可能不会成为问题。但如果我只有 4 个核心,它们会处理数百个 Redis 实例吗?或者我应该每个核心最多维护一个实例?
Redis 像单线程应用程序一样工作,它为例如 I/O 分配额外的线程。所以我会说它可以为每个 redis实例工作一个核心就可以了。由于您仍然在内核之间共享多核计算机上的一些资源。所以你几乎不能达到相同的性能,但我在这里看不到问题。
一旦您打开“耐用性”以允许您的硬盘驱动器持久存在,问题就可能出现。即使 redis 本身使用新的分叉线程来提供持久性,我也不相信它不会对已加载系统的性能造成太大影响。
正如我已经说过的,它可以在没有持久性的情况下很好地工作。