考虑到redis“主要是单线程的”,我想知道垂直扩展redis与memcached(多线程)相比是否会有足够的收益?两者都可以通过向集群添加额外的节点/示例来水平缩放。但是,我想知道memcached在垂直扩展方面是否会有更大的优势,因为它是多线程的?
smtd7mpg1#
这两个系统将允许你在一个“非常高”的比例垂直缩放。。。但是,如果没有关于应用程序的信息,很难回答任何大小和行为问题:数据库/缓存的大小键的数目、键的大小和值操作类型以及预期的吞吐量和延迟例如,作为一个非常基本的起点,您可以毫不担心地使用25gbredis示例,该示例的运行速度为25000次/秒,延迟非常低(<1ms)(但如果您的值为120mb,这可能是不正确的,因为网络将受到广泛影响,但无论如何,这可能是一个非常糟糕的主意)您还必须考虑到redis不仅仅是一个简单的键值存储,它具有各种数据类型(string、hash、set/sortedset。。。还有持久性选项和模块,它们为fulltextsearch/index、graph、timeseries等丰富了数据库。。。您可以使用“memtier benchmark”轻松地对redis运行一些基准测试。因此,我并不认为从“redis vs memcache”内部来看待这个问题是一个好的方法,而是关注您的用例和数据集。也就是说,redis6.0为i/o引入了一个新的线程模型,使得redis比以前更快。
1条答案
按热度按时间smtd7mpg1#
这两个系统将允许你在一个“非常高”的比例垂直缩放。。。但是,如果没有关于应用程序的信息,很难回答任何大小和行为问题:
数据库/缓存的大小
键的数目、键的大小和值
操作类型以及预期的吞吐量和延迟
例如,作为一个非常基本的起点,您可以毫不担心地使用25gbredis示例,该示例的运行速度为25000次/秒,延迟非常低(<1ms)(但如果您的值为120mb,这可能是不正确的,因为网络将受到广泛影响,但无论如何,这可能是一个非常糟糕的主意)
您还必须考虑到redis不仅仅是一个简单的键值存储,它具有各种数据类型(string、hash、set/sortedset。。。还有持久性选项和模块,它们为fulltextsearch/index、graph、timeseries等丰富了数据库。。。
您可以使用“memtier benchmark”轻松地对redis运行一些基准测试。
因此,我并不认为从“redis vs memcache”内部来看待这个问题是一个好的方法,而是关注您的用例和数据集。
也就是说,redis6.0为i/o引入了一个新的线程模型,使得redis比以前更快。