redis与ehcache结合实现高性能缓存方案

1.     ehcache 单点缓存与redis 分布式集群配合实现二级缓存

ehcache 集群原理:LinkedHashMap来实现的。多线程安全、内存管理安全、速度快。

集群节点之间数据同步是通过组播原理实现的对于N个节点的ehcache集群每当发生一次数据改变都会进行N-1次网络传输数据进行同步。对网络开销非常的大

具体如下图所示。

redis与ehcache结合实现高性能缓存方案_第1张图片

redis集群原理:redis集群缓存则是分布式缓存,redis实现分布式缓存主要基于redis集群的每个节点上都会有一个是插槽(slot)可以理解为是一个可以存储两个数值的一个变量这个变量的取值范围是:0-16383,对于n个节点的集群,redis首先会用16383/n=N(存在不能整除,redis会有自己的分配机制,会把余数分到最后的节点)得到n个每个由0-N的范围数,当需要存取储数据的时候redis会对key进行 crc16的算法得出一个结果,然后把结果对 16384 求余数,将其存到节点插槽所对应的节点范围的节点中。具体原理如下图所示

redis与ehcache结合实现高性能缓存方案_第2张图片

列子:template.opsForValue().set(“a”,“test”),首先对a进行crc16运算/16383得100然后100假设在0-16383/n之间所以会到node1进行存数据,取数据也如此。
  但是每个应用服务器的每次存储都会消耗一次网络请求资源。
两者的区别。Ehcache是在将数据存在本地然后通过网络传输进行同步数据,网络消耗在数据同步,而redis着是将数据直接存到redis集群服务器,每次对数据操作都会消耗一次网络资源。

你可能感兴趣的:(缓存)