「已注销」 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日

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集