缓存同步问题,是在同一个JVM还是用C/S?

这种采用把数据存入java map 中然后把这个应用单独用JVM跑起来的方式我不赞同,原因如下:1 每个小系统都需要跑一个额外的JVM,带来额外的资源开销。2 各个不同JVM存储信息同步是个问题,同时在同步上也会带来额外的开销,尤其是读写频繁的时候。3 同步时候必然要加锁,造成读写的效率降低(不排除对数据准确度要求不高的应用)。4 为了性能而产生更多的性能问题明显不合理。建议采用memcached,单独拿出个虚拟机或者物理机跑。所有的子系统都去该memcached中读写,memcached也是把数据存在内存中,读写效率非常高,而且没有同步问题。
■网友
所有系统统一用一个redis 或者 memcahe 把,天然解决你这个问题的。
■网友
划分成子系统是普遍的做法,没有问题;无需太纠结于 memcached 与 本地map的性能差异, 虽然两者差了很多倍, 但都属于够用的范围;从可维护的角度来看,memcached/redis 远优于同步;


    推荐阅读