经历了一段时间的实习,基本上了解了企业级开发一些具体流程和规范化管理机制,并且也参与了项目的研发,特别是关于缓存的使用有了新的认识,项目告一段落了,今天来记录一下学习到的的几个要点:
1.根据Cache资源管控信息,获取查询模式
在项目发布前期,缓存命中率较低时,对批量查询增设开关,禁止批量查询缓存,前期直接查DB,一段时间再切换到查询Cache,这样能够增加缓存的命中率
2.设置批量查询的阀值
因为Redis的性能原因,同时查询多个值比如10个值,在Redis中进行10次查询才能得到,而在DB中一次查询就能得到这个结果,相比之下读redis还不如读缓存
3.根据缓存灰度占比流量获取操作类型
灰度为0则不走缓存,灰度为100则全部走缓存,因为发布初期缓存里面没有什么值,读缓存读不到什么东西,还不如直接走数据库,发布一段时间后才从0到100,也是为了增加缓存命中率
而且也能在缓存出问题时设置为100,都走DB
4.缓存的一致性策略
缓存采用弱一致性策略,更新的时候先更新数据库,然后删除缓存,不回去更新缓存,避免多线程并发下的脏数据