使用缓存的一点注意事项

这里的缓存指的是分布式缓存,而非应用程序本身的内存。

合理使用缓存,能把应用的访问速度大大的提升。

假设一个数据需要经过复杂的运算,从再从遥远的多个数据库中查询而得到,那么这个数据获取的代价是比较昂贵的。

如果这个数据不经常变化,而且读的次数远大于更新的次数,那么就可以把数据放到缓存中来,等待下次需要获取这个数据的时候,直接从缓存中获取,避免再次进行复杂计算和远程获取合并等操作带来的耗时。

缓存的基本原理是 通过空间换取时间。

因为使用缓存等于把指定的数据保存在多个地方,这里涉及到两份数据之间如何做同步。

这里有两个方案:

1.缓存产品提供接口来同步,访问缓存提供的api来操作数据,这些数据会同时保存在缓存和数据库中,实现数据的同步,但是目前这样的产品还是有一定的限制。

2.通过应用的逻辑来同步,即手工同步。每次需要更新数据的时候,不仅仅要更新数据库,同时要更新缓存,这些都由应用来操作。


本文的正题:

应用应该统一规划对数据库的修改,避免在修改了数据库涉及缓存的数据时,没有同步数据的修改到缓存。

因为正常的应用联机逻辑,在使用到缓存的地方一般都会注意到缓存和数据库数据的同步修改。但是由于项目过大,在批量层面往往存在一些操作会对缓存涉及的数据进行修改,而这里的修改往往会把缓存的同步给忽略,从而导致问题的发生。

这是笔者在做项目时的一点经验,因为使用缓存的次数不多,经验有限,在于纪录下来,省己警人。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,179评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,328评论 19 139
  • 需要原文的可以留下邮箱我给你发,这里的文章少了很多图,懒得网上粘啦 1数据库基础 1.1数据库定义 1)数据库(D...
    极简纯粹_阅读 12,212评论 0 46
  • Android http://stormzhang.github.io/android/2014/07/07/le...
    freener阅读 1,014评论 0 1
  • 今天。2017年6月27日~ 星期二. 太阳好像多九个一样热辣无比!慵懒嗜睡的我睡到了十一点、现代人睡醒第一件事就...
    _Amy3阅读 1,735评论 0 0