数据库发生变化,怎么及时更新缓存?

鸣鸣Amadues 2018-06-16 10:32:10
为了访问速度,设计了缓存,但当数据库发生变化时,缓存里的数据已经不是最新的了,怎么样及时同时缓存,让用户在下一次访问里获得最新的数据?能不能做成数据库推送的形式?
...全文
3241 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
2020-05-29
  • 打赏
  • 举报
回复
一般是开一个单独任务删除缓存中对应数据库更新的数据。这样下次访问的时候会用数据库最新数据,并添加到缓存
RealKeyboardMan 2020-05-24
  • 打赏
  • 举报
回复
cache aside 策略,写数据库时删除现有缓存;读数据时未命中缓存则查数据库,查到写缓存然后返回。
wenjie4892543 2018-06-21
  • 打赏
  • 举报
回复
1:缓存的数据一般不会统计到数据库
2:数据库的数据入库前,可以添加到缓存中,保证数据一致性;
3:缓存可以存入磁盘中,跟数据库一样都可以直接使用
stacksoverflow 2018-06-20
  • 打赏
  • 举报
回复
看你的需求,是要实时同步还是要分批同步,实时同步的话就在所有更新的地方加一个切点来删除或同步缓存。 分批的话就按定时按时间戳来走。
Braska 2018-06-20
  • 打赏
  • 举报
回复
一般放缓存的数据都是不常变更的。 既然做了更新操作那就直接同步刷新缓存。
  • 打赏
  • 举报
回复
可以做一个定时器,来更新缓存中的数据
maradona1984 2018-06-20
  • 打赏
  • 举报
回复
mysql可以考虑用canal
鸣鸣Amadues 2018-06-17
  • 打赏
  • 举报
回复
引用 3 楼 oyljerry的回复:
一般是开一个单独任务删除缓存中对应数据库更新的数据。这样下次访问的时候会用数据库最新数据,并添加到缓存
这样是不是每次更新完数据库都要调用一个类似缓存刷新的方法?
oyljerry 2018-06-16
  • 打赏
  • 举报
回复
一般是开一个单独任务删除缓存中对应数据库更新的数据。这样下次访问的时候会用数据库最新数据,并添加到缓存
stacksoverflow 2018-06-16
  • 打赏
  • 举报
回复
参考 http://www.cnblogs.com/knowledgesea/p/3904929.html

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧