缓存使用的一些注意事项
来源:互联网 发布:电商网站 php redis 编辑:程序博客网 时间:2024/05/02 18:12
最近在项目中使用了很多缓存技术,包括局部缓存,远程集中式缓存,分布式缓存,在缓存的使用中也发现一些问题,整体总结如下:
1 使用局部缓存要注意内存溢出
一般局部缓存使用Map来实现,很容易无限制的往Map中填入数据,导致内存溢出。最好的方法就是使用SoftReference引用对象,而不是强引用对象
2 在分布式环境下使用局部缓存,如果缓存是同一类数据,比如同一张表的数据库配置,则需要考虑一个同步措施,保证各个集群之间的数据是在一致的。
一般情况下,需要每台集群机器定时刷新缓存,在刷新缓存的时候,注意要对缓存加锁。这种情况下,需要对某一时刻,个台机器之间的缓存状态是不一致的。
3 远程集中缓存需要考虑远程调用开销和缓存对象的序列化和反序列化开销。
远程缓存就需要通过远程调用缓存服务器来实现,远程调用开销比较大,所以缓存对象设置的要合理,避免获取一个完成对象的时候时候多次访问缓存信息。又由于序列化和反序列化的开销,缓存对象要尽可能的小。
4 远程集中式缓存需要考虑单点问题。如果缓存服务器宕机,所有的对缓存访问都失效。需要考虑备份的缓存服务器。
5 分布式缓存需要考虑缓存对象的分配算法,分配算法很重要,需要缓存请求能够平均的分配到各台缓存服务器。尤其当缓存机器增加一台或者减少一台的时候,分配算法需要考虑哈希一致性的问题。
6 分布式缓存也会存在某写缓存服务器宕掉问题,会影响1/N的缓存访问。
- 缓存使用的一些注意事项
- 缓存使用的一些注意事项
- 使用excel的一些注意事项
- MERGE的使用一些注意事项
- 使用MediaPlayer的一些注意事项
- 使用idm的一些注意事项
- LigerUI使用的一些注意事项
- struts使用的一些注意事项
- 使用Opencv的一些注意事项
- pig使用的一些注意事项
- hibernate缓存使用注意事项
- 缓存使用中的注意事项
- 缓存使用中的注意事项
- Eclipse中使用CVS 的一些注意事项
- 关于U盾使用的一些注意事项
- Matlab标定工具箱使用的一些注意事项
- WPS中使用VBA的一些注意事项
- RHEL5启用使用xdmcp的一些注意事项。
- java语言的线程安全级别
- Google Android系统中侵犯Oracle的专利说明
- web中缓存的几种方式
- LINUX JDK安装
- 利用工具提高工作效率
- 缓存使用的一些注意事项
- GTD时间管理阅读笔记
- 《如何阅读一本书》读后感-1
- GTP时间管理的实践心得
- 一个优美的架构需要考虑的几个问题
- 面向服务的架构中的服务治理
- 程序员知识资产的投资
- iPhone开发中经常用到的控件尺寸大集合
- 多台Mac电脑使用同一个apple开发者账号开发测试