database - 您如何混合使用 SQL DB 与键值存储(即 Redis)

标签 database redis key-value-store

我正在审查我的代码并意识到我花了很多时间

  1. 从数据库中获取行,
  2. 格式化为 XML,
  3. AJAX GET 到浏览器,然后
  4. 转换回哈希 javascript 对象作为我的本地数据存储。

在更新时,我必须反转这个过程(除了使用 POST 而不是 XML。)

刚开始研究 Redis,我想我可以节省大量时间,将对象保存在服务器上的键值存储中,并且只使用 JSON 直接传输到 JS 客户端。但是我虚弱的头脑无法预料到我会因为离开 SQL 数据库而放弃什么(即我害怕放弃 GROUP BY/HAVING 查询)

对于我的数据,我有:

  • 多对多关系,即对象标签、对象组等。
  • 通过组合查询对象,即 WHERE tag IN ('a', 'b','c') AND group in ('x','y')
  • 自连接,即每个对象的所有标签 WHERE tag='a' (sql group_concat())
  • 很多外连接,即 OUTER JOIN rating ON o.id = rating.obj_id
  • 和 feeds,这似乎是 REDIS 的强项

如何成功混合键值和 SQL 数据库?

例如,使用 SQL RANGE 查询(即 WHERE obj.id IN (1,4,6,7,8,34,876,9879 ,567,345, ...),还是相反?

欢迎提出想法/建议。

最佳答案

您可能想看看 MongoDB .它适用于 JSON 样式的对象,并带有 SQL 之类的索引和查询。当您需要简单的查找而不是复杂的查询时,Redis 更适合存储列表和集合等数据结构。

关于database - 您如何混合使用 SQL DB 与键值存储(即 Redis),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204694/

相关文章:

laravel-5 - Laravel - 模型级别的 Redis 缓存

redis - Redis 是否持久化数据?

crash - Aerospike突然坠毁

python - 在 django 中预取有限数量的相关对象

database - 以高效的方式维护和更新大量 SQL 结果子集

Redis 服务器控制台输出说明?

node.js - Node.js 的最快、非基于内存的多进程键值存储

javascript - 用于 Node.js 的轻量级 Javascript 数据库

java - 使用 java 在 HSQL 数据库中出现异常 - 用户缺乏权限或未找到对象错误

mysql - MySQL 数据库中有一列 LONGTEXT 的内存消耗