Redis比MySQL更快吗?

17

我刚读到Redis是“持久化”的。这是不是意味着它存储在硬盘上?如果是的话,它怎么能比MySQL更快呢,因为MySQL也是基于硬盘的?显然,我只是一个初学者,所以请不要太苛刻。

相关链接: Node.js中缓存数据的最便宜方法是什么?

3个回答

20

Redis只能处理键值对,这比关系型数据库MySQL远不够覆盖普通用例。

Redis的持久性是可选的。许多用例不需要耐久性(例如,我使用Redis存储用户会话以外的服务器程序,以便可以重启它而不会被用户注意到)。在这种情况下,没有写入磁盘。

即使您将其配置为持久性,也不会在存储中的每次写入时进行写入,这意味着在严重崩溃的情况下,您可能会丢失几秒钟的数据。但这也意味着表现更好。

总的来说,你并不真正比较Redis和MySQL:

  • 如果您需要可靠的关系存储,使用MySQL(或其他DBMS)
  • 如果您可以承受在崩溃的情况下丢失几秒钟的数据,并且仅需要快速存储和检索键值对,则Redis可能有趣

11
强调它们解决不同的问题,针对不同的用例可以加1分。根据我的经验,Redis在涉及缓存方面更快。 - Benjamin Gruenbaum
在这种情况下使用Redis是否值得?我的先前问题 - user3289157
2
很难说。没有信息的话,这可能是个好主意。但如果你没有足够的内存,Redis 就不会有效率。 - Denys Séguret
当你思考时,大多数的 SQL 事务都是键值对。例如,“select * from table where id = X” 是一个键;行是一个值。 - Benubird

7
被接受的答案只列出了优缺点,没有回答“Redis是否比MySQL更快?”的问题。
答案是:是的,Redis比MySQL更快。
为什么会更快:如果没有缓存,它取决于硬盘带宽(而不是查询)。
MySQL使用磁盘:HDD 100 MB/s,SSD 500 MB/s,NVME 500-3000 MB/s。
Redis和其他NoSQL使用内存/RAM:DDR3 15,000 MB/s,DDR4 25,600 MB/s。
因此,如果使用HDD 100 MB/s的MySQL与DDR4 25,600 MB/s的Redis相比,速度可以快256倍*。
*注意:这只是理论上的性能,不是实际性能。
哪一个也是基于硬盘的?两者都使用硬盘,但Redis仅用于备份/还原。

即使这是一个非常老的问题,我认为这个答案应该被选中,因为它更相关。 - JUNPA

0
Redis是一种内存中但持久化在磁盘上的数据库。
它首先将数据存储在内存中,然后不断将数据复制到磁盘上。

3
它比MySQL更快吗? - Klesun
是的,因为内存比硬盘/固态硬盘更快(尽管某些 SQL 可以被缓存以提高性能,但并不保证)。 - Ian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接