当我们有MySQL临时表时,为什么我们有Redis?

时间:2016-04-14 04:17:11

标签: mysql redis

只要计算机有足够的RAM(并且相应地设置了MySQL),MySQL临时表就存储在内存中。可以为任何字段创建任何索引。

Redis将数据存储在由一个密钥索引的内存中,根据我的理解,MySQL也可以完成这项工作。

有没有什么能让Redis更好地存储大量(100-200k行)的易变数据?我只能解释Redis的外观,不是每个项目都有mysql,可能还有其他一些数据库不支持临时表。

如果我的项目中已经有MySql,那么忍受Redis是否有意义?

2 个答案:

答案 0 :(得分:3)

Redis就像直接使用索引一样。你和数据之间没有ACID,SQL解析器和许多其他东西。

它提供了一些基本的数据结构,并且它们经过专门优化以保存在内存中,并且还具有读取和修改它们的特定操作。

另一方面,Redis并未设计为查询数据 (但您可以使用SORT实现非常强大且高性能的过滤器,{{1 },交叉点和其他操作)但是要存储数据,因为您将在以后使用。例如,如果您希望获得按3种不同标准排序的客户,则需要填写3个不同的排序集。其他数据结构有很多用例,但我最终会在答案中写一本书......

此外,Redis中最强大的功能之一是可以轻松复制,并且从3.0版本开始,它支持开箱即用的数据分片。

关于为什么你需要使用Redis而不是MySQL上的临时表(以及其他拥有它们的引擎)取决于你。您需要研究您的案例,并检查在Redis等NoSQL存储中缓存或存储数据是否都能超越您的实际方法,并为您提供更优雅的数据架构。

答案 1 :(得分:1)

通过将Redis与其他数据库一起使用,您可以有效地减少其上的负载。此外,当Redis在不同的服务器上运行时,可以在每个层上独立执行扩展。