根据缓存和应用的耦合程度将其划分为Local Cache和Remote Cache。
Local Cache是指包含在应用之中的缓存组件,如Ehcache, Oscache.
Remote Cache指和应用解耦,在应用之外的缓存组件,如Memcached
Local Cache最大的优点是应用和Cache在同一进程内部,请求缓存非常快速,完全不需要网络开销,所以单应用,不需要集群,或者集群时Cache node不需要互相通知的情况下使用比较合适。
缺点:多个应用程序无法直接共享缓存,应用集群的情况下这个问题就更加明显(好像是废话= =)
Memcached是一种集中式Cache,支持分布式横向扩展。
集中式架构:
1.节点均衡的网状(JBoss Tree Cache),利用JGroup的多广播通信机制来同步数据。
2.Maste-Slaves模式(分布式文件系统),由Master来管理slave,如何选择slave,如何迁移数据,都是由Master来完成,但是Master本身也存在单点问题。
应用点:
小对象的缓存(用户的token,权限信息,资源信息),小的静态资源缓存,SQL结果的缓存。