欢迎加入,新群号码:99640845
在web开发的过程中缓存是必不可少的工具,无论是mamcache还是redis我想大家都很有所涉略。
我分享一下我个人在工作中的一些使用后的想法。
===========================================
缓冲应用设计:
对于缓存的使用我想大家应该都会使用,简单的key=》value 我就不多说什么了 == 不会用的可以看下手册
缓存无外乎就是在应用于数据库之间建立一个中间的数据层来减少数据库的压力,这是最简单的设计方式 对于缓存中的数据可以
通过异步的方式进行持久化操作
然后,在实际应用的过程中,会有很多空值去缓存中查找这样的话会浪费大量资源,所以可以设计成这样:
在映射中如果找到key值说明存在value所以再去缓存中寻找数据 否则直接false 可以大大节省缓存的查找时间
在使用缓存的时候,冗灾也是也是一个很重要的事情,redis还好,可以数据持久化 如果是memcache的话就会很尴尬
如上,可以做到在应用中做到,当缓存服务器出现问题的时候,去数据库查询返回数据,而不会因为缓存丢失而导致应用整体挂掉。
同时触发缓存补偿机制,可以切换缓存服务器,并且重新建立缓存池。这样就可以在缓存服务器出现问题的时候,不影响线上应用。
至于数据的唯一性和数据的持久化问题,要根据具体的业务逻辑设计自己的,数据异步同步机制。
可以的话,可以把数据根据实效性拆分。时效性高的用实时队列任务,时效性稍低的数据可以阶段性同步。
我的想法大概就是这个样子。