V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ClancyH
V2EX  ›  Java

关于用 redis 作为数据库缓存的问题

  •  
  •   ClancyH · 2019-11-12 17:01:53 +08:00 · 4150 次点击
    这是一个创建于 1867 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前想用 redis 作为数据库缓存,主要问题是缓存数据源于查询缓存未查询成功然后对数据库查询结果的插入,所以在缓存中存储数据的 key 是查询条件吗,那这样不是每个查询条件都会有自己一套缓存,不说数据冗余的问题,还有在数据更新时涉及到的缓存数据改动不是就可能涉及到多个缓存结果,另外一种就是 redis 直接将表数据缓存过来,但是 redis 应该不擅长做关系查询吧,这样实现起来感觉很麻烦而且效率不高,所以第一种做法中有比较推荐的方案或者优化的建议吗,或者其他实现做法
    6 条回复    2019-11-13 10:55:36 +08:00
    deming
        1
    deming  
       2019-11-12 17:39:49 +08:00
    解决你的问题只需要一个注解 @Cacheable .
    susecjh
        2
    susecjh  
       2019-11-12 20:06:13 +08:00 via Android
    注解,包装器想想真的神器
    hisenyuan
        3
    hisenyuan  
       2019-11-12 20:18:11 +08:00
    这个描述看得我不知所云...建议好好组织下语言。
    量不大上述两位大佬的建议还不错。
    wushigejiajia01
        4
    wushigejiajia01  
       2019-11-13 00:31:40 +08:00 via Android
    看你的 redis 怎么用了,最简单的,userid 作为一个 key,然后 userinfo 作为一个 key, 通过查询条件得到 userid,然后再通过 userid 查询 userinfo

    然后数据更新,注意要保持缓存跟 DB 同步
    0NF09LJPS51k57uH
        5
    0NF09LJPS51k57uH  
       2019-11-13 09:53:58 +08:00
    你对 redis 的使用姿势有一些误解…不能把 redis 当作 mysql 去生搬硬套。
    我认为与注解啥的没关系,他既然会疑问 redis 不适合做关系查询…建议去找找 redis 实战的例子来看看
    zarte
        6
    zarte  
       2019-11-13 10:55:36 +08:00
    或许你需要的是主从而不是缓存。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2734 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:00 · PVG 23:00 · LAX 07:00 · JFK 10:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.