如何使用缓存技术解决复杂的sql数据

时间:2015-07-13 07:33:20

标签: mysql caching redis memcached ehcache

我有一些常见的sql,经常使用sql的结果,并为select.i添加一些其他条件需要缓存结果。 我试着把sql结果放在redis中,但是密钥不能采用这个要求,我不通过密钥识别sql关系。 表

例如我想把所有type = 2的订单表放在缓存中,然后我使用结果过滤器all department_id = 4。关键的redis无法填充它。 这个例子很简单,在要求中,它可以是带有一些表连接结果的复杂sql。 什么缓存技术可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

如您所示,关系数据库与键值存储(或缓存)之间存在不匹配。

克服不匹配的常用方法是对数据进行反规范化。这是缓存特定的结果,然后可以通过单个键查找来检索。

因此,从您的示例中,您可以将select和过滤器的结果缓存在一个缓存键值中。

当然,对写入的数据执行此操作会引发一致性问题。

欢迎来到这里!