只要计算机有足够的内存(并且相应地设置了 MySQL),MySQL 临时表就会存储在内存中。可以为任何字段创建任何索引。
Redis 将数据存储在一次由一个键索引的内存中,据我所知,MySQL 也可以完成这项工作。
有没有什么东西可以让 Redis 更好地存储大量(100-200k 行)的易失性数据?我只能解释Redis的外观,不是每个项目里面都有mysql,可能其他一些数据库不支持临时表。
如果我的项目中已经有 MySql,那么忍受 Redis 有意义吗?
Redis 就像直接使用索引一样。您和数据之间没有 ACID、SQL 解析器和许多其他东西。
它提供了一些基本的数据结构,它们经过专门优化以保存在内存中,并且它们还有特定的操作来读取和修改它们。
另一方面,Redis 并非设计用于查询数据 (但您可以使用SORT、SCAN、 交集和其他操作实现非常强大和高性能的过滤器),而是存储数据,以便您稍后使用。例如,如果您想获得按 3 个不同标准排序的客户,您需要努力填充 3 个不同的排序集。其他数据结构有很多用例,但我最终会写一本书来回答......
此外,Redis 中最强大的功能之一是易于复制,并且自 3.0 版本以来,它支持开箱即用的数据分片。
关于为什么需要在 MySQL(以及其他具有它们的引擎)上使用 Redis 而不是临时表的原因取决于您。您需要研究您的案例并检查在像 Redis 这样的 NoSQL 存储中缓存或存储数据是否可以超越您的实际方法,并且它为您提供更优雅的数据架构。