首页 > 解决方案 > 使用 Redis 进行垂直缩放

问题描述

鉴于 Redis“主要是单线程”,我想知道在垂直扩展 Redis 方面是否会有足够的收益,而不是像 Memcached(多线程)这样的东西?

两者都可以通过向集群添加额外的节点/实例来水平扩展。但是,我想知道 Memcached 在垂直扩展时是否会因为它是多线程的而获得更显着的收益?

标签: redismemcachedscalability

解决方案


这两个系统都将允许您以“非常高”的比例垂直扩展......但是如果没有有关应用程序的信息,很难回答任何规模和行为问题:

  • 数据库/缓存的大小
    • 键的数量和键的大小和值
  • 操作的类型以及预期的吞吐量和延迟

例如,作为一个非常基本的起点,您可以毫无顾忌地使用 25.000 操作/秒且延迟非常低(<1ms)的 25Gb Redis 实例...... (但如果您的值是 120Mb 作为网络将受到广泛影响,但这可能是一个非常糟糕的主意)

此外,您还必须考虑到 Redis 不仅仅是一个简单的键值存储,它具有各种数据类型(字符串、哈希、集合/排序集、...和流),还有持久性选项和丰富的模块FullTextSearch/Indexing、Graph、TimeSeries、...的数据库

您可以使用'Memtier Benchmark'轻松地针对 Redis 运行一些基准测试。

因此,我认为从“redis vs memcache”内部来看问题不是一个好方法,而是专注于您的用例和数据集。

也就是说,Redis 6.0为 I/O 引入了一个新的线程模型,这使得 Redis 比以前更快。


推荐阅读