mysql数据库中有A、B、C三张表,现在应用程序得到的数据是由这三张表关联查询后得到的结果集。
每个用户得到的关联查询结果是不一样的。
我想插入数据时就直接写入到redis,用户所有操作都在redis里面,定时把数据同步到mysql,但是redis不支持关联查询,redis如何返回mysql关联查询出的结果呢?
mysql数据库中有A、B、C三张表,现在应用程序得到的数据是由这三张表关联查询后得到的结果集。
每个用户得到的关联查询结果是不一样的。
我想插入数据时就直接写入到redis,用户所有操作都在redis里面,定时把数据同步到mysql,但是redis不支持关联查询,redis如何返回mysql关联查询出的结果呢?
3 回答4.1k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
4 回答1.9k 阅读
2 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
如果关联查询很紧密,可能选用redis就是错误的,更适合选择一个支持条件查询的产品,比如MongoDB;
如果不是很紧密,分别查询ABC,判断where后的条件筛选对哪个表能得到最小的结果集;然后拿这个最小结果集去查其它两个表;
另外,redis支持交集,不过这个时间复杂度比较高,不一定有自己筛选一遍来的更快;
http://redisdoc.com/set/sinter.html