博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
缓存使用的一些注意事项
阅读量:6836 次
发布时间:2019-06-26

本文共 603 字,大约阅读时间需要 2 分钟。

最近在项目中使用了很多缓存技术,包括局部缓存,远程集中式缓存,分布式缓存,在缓存的使用中也发现一些问题,整体总结如下:

1 使用局部缓存要注意内存溢出

一般局部缓存使用Map来实现,很容易无限制的往Map中填入数据,导致内存溢出。最好的方法就是使用SoftReference引用对象,而不是强引用对象

2 在分布式环境下使用局部缓存,如果缓存是同一类数据,比如同一张表的数据库配置,则需要考虑一个同步措施,保证各个集群之间的数据是在一致的。

一般情况下,需要每台集群机器定时刷新缓存,在刷新缓存的时候,注意要对缓存加锁。这种情况下,需要对某一时刻,个台机器之间的缓存状态是不一致的。

3 远程集中缓存需要考虑远程调用开销和缓存对象的序列化和反序列化开销。

远程缓存就需要通过远程调用缓存服务器来实现,远程调用开销比较大,所以缓存对象设置的要合理,避免获取一个完成对象的时候时候多次访问缓存信息。又由于序列化和反序列化的开销,缓存对象要尽可能的小。

4 远程集中式缓存需要考虑单点问题。如果缓存服务器宕机,所有的对缓存访问都失效。需要考虑备份的缓存服务器。

5 分布式缓存需要考虑缓存对象的分配算法,分配算法很重要,需要缓存请求能够平均的分配到各台缓存服务器。尤其当缓存机器增加一台或者减少一台的时候,分配算法需要考虑哈希一致性的问题。

6 分布式缓存也会存在某写缓存服务器宕掉问题,会影响1/N的缓存访问。

转载地址:http://czqkl.baihongyu.com/

你可能感兴趣的文章
Android菜单详解(一)——理解android中的Menu
查看>>
Android四大组件
查看>>
谁是前生埋你的人?
查看>>
Java Magic. Part 5: SecurityManager
查看>>
一个好的网站,应该用什么样的空间or服务器?建站基础知识普及
查看>>
Webservice开发流程
查看>>
shell:oracle安装前环境设置
查看>>
java 读取配置文件中的列表
查看>>
Tomcat关闭日志catalina.out
查看>>
常用查看文件命令
查看>>
ApplicationContext对象的获取方式
查看>>
MySQL多实例学习笔记
查看>>
Redis数据类型操作(一) —— String
查看>>
分布式监控系统Zabbix3.2对数据库的连接数预警
查看>>
AD恢复(3)使用AD回收站
查看>>
微软私有云分享(R2)7-Linux虚拟机无DNS?
查看>>
DNS(二)--正反解析及主从配置
查看>>
windows环境下redis.conf配置文件
查看>>
PHP严重致命错误处理:php Fatal error: Cannot redeclare clas
查看>>
RMAN 中delete exipired 和 delete obsolete 的区别
查看>>