今天项目测试,和开发一起Review代码,对缓存的设计,详细讨论了一番。自己也学习到了一些东西。由于某个接口的访问量较大,需要将数据保存在memcached中,缓存更新方式是取缓存,如果拿不到数据,就去持久化里获取,并更新到缓存,另外有一个任务是监控持久化数据,如果有变更,将缓存数据删掉,将会有一定的延迟,导致读的是脏数据。这样的缓存思路和ThreadLocal的缓存完全不同,完全可能被误用,如果有变更还没有去缓存里删除时,一次请求中第一次使用接口指定直接读持久化(其实此次与memcached缓存无关),第二次再调用就会有使用者会认为可以用缓存了因为调用过一次了,导致两次读取的数据不一致。讨论后认为可以在memcached上面再加一层ThreadLocal的缓存,保证一次请求中读取的数据都是一样
对象缓存
最新推荐文章于 2022-09-01 16:46:36 发布