【发布时间】:2020-11-23 17:25:15
【问题描述】:
鉴于 Redis“主要是单线程”,我想知道在垂直扩展 Redis 方面是否有足够的收益,而不是像 Memcached(多线程)这样的东西?
两者都可以通过向集群添加额外的节点/实例来水平扩展。但是,我想知道 Memcached 是否会因为它是多线程的而在垂直扩展时获得更显着的收益?
【问题讨论】:
标签: redis memcached scalability
鉴于 Redis“主要是单线程”,我想知道在垂直扩展 Redis 方面是否有足够的收益,而不是像 Memcached(多线程)这样的东西?
两者都可以通过向集群添加额外的节点/实例来水平扩展。但是,我想知道 Memcached 是否会因为它是多线程的而在垂直扩展时获得更显着的收益?
【问题讨论】:
标签: redis memcached scalability
这两个系统都允许您以“非常高”的比例垂直扩展...但是如果没有有关应用程序的信息,很难回答任何规模和行为问题:
例如,作为一个非常基本的起点,您可以毫无顾忌地使用 25.000 操作/秒的 25.000 操作/秒和非常低的延迟 ((但这可能不会是真的,如果您的值是 120Mb,因为网络会受到广泛影响,但这可能是一个非常糟糕的主意)
您还必须考虑到,Redis 不仅仅是一个简单的键值存储,它具有各种数据类型(字符串、哈希、集合/排序集……和流),还有持久性选项,以及丰富数据库的模块,用于全文搜索/索引、图形、时间序列……
您可以使用'Memtier Benchmark' 轻松地针对 Redis 运行一些基准测试。
所以我认为从“redis vs memcache”内部看问题不是一个好方法,而是专注于您的用例和数据集。
也就是说,Redis 6.0 为 I/O 引入了一个新的线程模型,这使得 Redis 比以前更快。
【讨论】: