什么是分布式缓存? 一种在应用程序(通常是Web应用程序)中“部署”的解决方案,可确保从内存而不是从磁盘(速度要慢得多)加载数据,以提高性能和响应时间。
如果要在单台计算机上使用缓存,那看起来很容易-您只需从内存中的数据库中加载最活跃的数据(例如Guava缓存实例),然后从那里提供数据。 当它必须在集群中工作时,它会变得更加复杂-例如,5个应用程序节点以循环方式为用户提供请求。
每当对其中一台计算机的请求更新一条数据时,就必须在所有计算机上更新内存缓存。 如果仅将所有数据加载到内存中而不使数据无效,则高速缓存将不会具有“连贯性”,它将具有过时的值,并且对不同应用程序节点的请求将具有不同的结果,这是您最想避免的。 或者,您可能只有一台具有大量内存的大型缓存服务器,但它可能会死机,这可能会破坏流畅的操作,因此,您希望在群集中至少拥有2台计算机。
您可以通过不同的方式获得分布式缓存。 列举一些:Infinispan( 我之前已经讲过),Terracotta / Ehcache,Hazelcast,Memcached,Redis,Cassandra,Ela