我正在审查我的代码并意识到我花了很多时间
- 从数据库中获取行,
- 格式化为 XML,
- AJAX GET 到浏览器,然后
- 转换回哈希 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/