「已注销」 2017-07-05 07:48 采纳率: 25%
浏览 865
已采纳

请教各位一个问题,不是什么代码问题,就是一个关于Redis的概念

我学了一段时间的Redis,主从复制、哨兵模式、集群什么的也都玩过了,知识对于缓存这个概念我太模糊了,就是缓存服务器,什么是缓存服务器呢,就是缓存是如何镶嵌子程序里面的呢?我前两天用Redis做了Mybatis的二级缓存,实现cache接口的过程我感觉就是 在读取一个数据的时候我存入Redis里面,然后下次取得时候我看Redis里面有没有。那对于缓存服务器这个东东是不是也是这个道理呢,况且Mybatis已经封装好了步骤,我要是自己写一个Redis缓存那么我每次操作数据的时候都要先操作Redis,那代码会异常的乱啊,而且这么做也不太现实啊,请问哪位老哥闲暇之际给我答疑解惑,也问一下有没有这样的demo,我对Redis比较感兴趣。

  • 写回答

5条回答

  • 天涯泪小武 博客专家认证 2017-07-06 06:29
    关注

    其实你担心的问题在于取数据时操作redis和操作db写在一起很乱,代码量高了,然后还有读取数据脏数据的问题。
    不想写一起是对的,redis的逻辑是应该和db的分开来写的,最终效果应该是db的和redis各自有增删改查,甚至于一方挂掉了,另一方还能正常工作。
    你可以参照这个目标去实现它,采用aop的方式,在db的service上写切面,譬如db的query前先去redis 的query,查到值后就不执行db的。修改也一样,修改db成功后再去同步到redis。

    至于数据一致性,你可以采用捕捉异常去处理,或者跑定时任务去同步数据。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已采纳回答 11月16日

悬赏问题

  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。