【问题标题】:Redis > Isolate keys with large values?Redis > 隔离具有大值的键?
【发布时间】:2018-09-06 02:11:12
【问题描述】:

据我了解,redis 的最佳实践涉及许多具有小值的键。

但是,我们有几十个密钥,我们希望每个密钥存储几 MB。当流量较低时,这在大多数情况下都可以解决,但在流量较高的情况下,我们发现超时错误开始堆积。这会导致我们对 redis 的所有微小请求都出现问题,这些请求以前是可靠的。

较大的值用于优化我们网站功能的关键部分,并在运行良好时真正提升性能。

有没有一种好方法可以隔离这些大值,以免它们干扰我们最佳实践大小值的网络 I/O?

请注意,我们不需要动态发现一个值是 >100KB 还是以 MB 为单位。我们有一个特定的方法,我们可以使用单独的 redis 服务器/实例/数据库/节点/分片/分区(我不是硬件专家)。

【问题讨论】:

    标签: redis stackexchange.redis


    【解决方案1】:

    只需根据需要安装/配置尽可能多的实例(在这种情况下为 2 个),每个实例在一个逻辑子集上独立管理,如果键(例如大和小),路由由应用程序完成。简单有效 - 分而治之

    【讨论】:

      【解决方案2】:

      正确的解决方案是拥有 2 个独立的 redis 集群,一个用于大型键,另一个用于小型键。这 2 个集群可以在同一组物理或虚拟机上运行,​​也就是多租户(您可能希望这样做以充分利用机器上的底层内核,因为 redis 服务器是单线程的)。这样您就可以分别扩展两个集群,并且由于在较大请求后面排队而导致小请求超时的问题将得到缓解。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-03
        • 1970-01-01
        相关资源
        最近更新 更多