实际开发使用中缓存的使用
来源:互联网 发布:交流网络 编辑:程序博客网 时间:2024/05/22 08:15
在我的上一篇文章使用spring aop实现URL地址参数权限控制中,一开始我使用了本地缓存对配置好了的URL拦截等数据进行缓存,以提高AOP判断权限的效率,但在后来考虑到,如果系统使用集群的方式进行部署,这种本地缓存方式并不能共享缓存数据,每台集群服务器上都需要维护一份缓存,并且因为缓存生成的时机,是在保存了URL拦截配置之后处理的,这又可能会造成每台集群服务器上维护的缓存数据会有差异,那么解决的办法就是使用独立缓存服务器进行缓存的管理,幸好公司的系统中已经提供了对应缓存接口的实现。
因此我只需要将本地缓存的方法,改成使用注入的ICache接口去操作缓存即可,这样,当系统是在集群的情况下使用,则只需要在spring的beans配置文件中,将ICache接口实现类修改为MemcachedImpl即可实现缓存方式的切换。
在系统只是单机使用时,可以使用默认的MemcachedImpl,当然,也可以配置成MemcachedImpl,但在单机使用以及缓存数据量不大的情况下,本地缓存就足够了,存取的速度更快,存储的数据结构也更丰富。
在说到memcached时,我又想到了经常被拿来比较的另一个缓存框架--Redis,当我们需要缓存的数据量不大,需要缓存的数据能使用简单的key-value存储的话,使用memcached就足够了,但如果对数据持久化和数据同步有要求,或者需要缓存服务器能支持更复杂的结构和操作,则Redis会是一个更好的选择,Redis的数据可以持久化,在重新启动之后数据依然存在,而memcached重启之后,数据将丢失,如果多台memcached服务器数据丢失,可能会出现“惊群”问题,找不到缓存的请求都直接向数据库发送请求,获取数据,短时间内给数据库带来压力可能是巨大的。
- 实际开发使用中缓存的使用
- 实际开发中dp , px ,pt , sp 的使用
- popwindow实际开发使用中出现的问题(三)
- popwindow实际开发使用中出现的问题(四)
- Web开发中关于缓存的使用
- 前端实际开发使用框架的建议
- 实际项目中页面标签的使用
- WaitForSingleObject实际使用中犯的错
- 如何在实际项目开发中使用LinQ技术
- 【沙龙干货】如何在实际工程中使用Swift开发?
- Git 实际开发中的使用
- Fragment实际开发中的使用
- Git实际开发中的使用
- 实际开发git使用流程
- xmlhttp的实际使用
- Binder的实际使用
- popupWindow的实际使用
- Canvas的实际使用
- 使用PopupMenu创建弹出式菜单
- HDU 1255 扫描线
- 巩固java(三)---java修饰符
- poj2352
- 基于Matlab来计算矩阵特征值和特征向量
- 实际开发使用中缓存的使用
- 【面试之旅—算法与数据结构-1】 最大最长子序列
- TexLive下使用resumecls中/英文简历模板(Ubuntu 12.04)
- iOS_AutoLayout
- Javascript关于绑定事件方法attachEvent和addEventListener区别与兼容写法
- 文章标题
- 写iOS SDK注意事项
- Software Testing Technology Day01
- Android打包时下面的错误:Unable to execute dex: GC overhead limit exceeded