据我了解,redis的最佳实践涉及许多具有较小值的键。
但是,我们有几十个密钥,每个密钥要存储几个MB。当流量较低时,大多数情况下都可以解决,但在流量较高的情况下,我们发现超时错误开始堆积。这会导致以前所有可靠的对Redis的微小请求都出现问题。
较大的价值是用于优化我们网站功能的关键部分,并且在运行良好时可以真正提高性能。
是否有隔离这些较大值的好方法,以使它们不会干扰我们最佳实践值的网络I / O?
注意,我们不需要动态发现值是否大于100KB或以MB为单位。我们有一种特定的方法,可以使用单独的Redis服务器/实例/数据库/节点/碎片/分区(我不是硬件专家)。
答案 0 :(得分:0)
只需安装/配置所需的多个实例(在这种情况下为2个),每个实例就可以独立地管理逻辑子集(如果有密钥)(例如,大和小),并由应用程序完成路由。简单有效-分而治之
答案 1 :(得分:0)
正确的解决方案是拥有2个单独的Redis集群,一个用于大型密钥,另一个用于小型密钥。这两个群集可以在同一组物理机或虚拟机上运行,也就是多租户(您要这样做是为了充分利用计算机上的基础核心,因为redis服务器是单线程的)。这样,您就可以分别扩展两个群集,并且可以缓解由于排队较大的请求而导致的小请求超时的问题。