redis与ehcache结合实现高性能缓存方案
2018-03-18 00:30
471 查看
1. ehcache 单点缓存与redis 分布式集群配合实现二级缓存
ehcache 集群原理:LinkedHashMap来实现的。多线程安全、内存管理安全、速度快。
集群节点之间数据同步是通过组播原理实现的对于N个节点的ehcache集群每当发生一次数据改变都会进行N-1次网络传输数据进行同步。对网络开销非常的大
具体如下图所示。
redis集群原理:redis集群缓存则是分布式缓存,redis实现分布式缓存主要基于redis集群的每个节点上都会有一个是插槽(slot)可以理解为是一个可以存储两个数值的一个变量这个变量的取值范围是:0-16383,对于n个节点的集群,redis首先会用16383/n=N(存在不能整除,redis会有自己的分配机制,会把余数分到最后的节点)得到n个每个由0-N的范围数,当需要存取储数据的时候redis会对key进行 crc16的算法得出一个结果,然后把结果对 16384 求余数,将其存到节点插槽所对应的节点范围的节点中。具体原理如下图所示
列子:template.opsForValue().set(“a”,“test”),首先对a进行crc16运算/16383得100然后100假设在0-16383/n之间所以会到node1进行存数据,取数据也如此。
ehcache 集群原理:LinkedHashMap来实现的。多线程安全、内存管理安全、速度快。
集群节点之间数据同步是通过组播原理实现的对于N个节点的ehcache集群每当发生一次数据改变都会进行N-1次网络传输数据进行同步。对网络开销非常的大
具体如下图所示。
redis集群原理:redis集群缓存则是分布式缓存,redis实现分布式缓存主要基于redis集群的每个节点上都会有一个是插槽(slot)可以理解为是一个可以存储两个数值的一个变量这个变量的取值范围是:0-16383,对于n个节点的集群,redis首先会用16383/n=N(存在不能整除,redis会有自己的分配机制,会把余数分到最后的节点)得到n个每个由0-N的范围数,当需要存取储数据的时候redis会对key进行 crc16的算法得出一个结果,然后把结果对 16384 求余数,将其存到节点插槽所对应的节点范围的节点中。具体原理如下图所示
列子:template.opsForValue().set(“a”,“test”),首先对a进行crc16运算/16383得100然后100假设在0-16383/n之间所以会到node1进行存数据,取数据也如此。
但是每个应用服务器的每次存储都会消耗一次网络请求资源。 两者的区别。Ehcache是在将数据存在本地然后通过网络传输进行同步数据,网络消耗在数据同步,而redis着是将数据直接存到redis集群服务器,每次对数据操作都会消耗一次网络资源。
相关文章推荐
- spring结合redis如何实现数据的缓存
- SpringBoot集成Redis来实现缓存技术方案
- SpringBoot集成Redis来实现缓存技术方案(转)
- spring+ehCache+redis多级缓存自定义实现
- spring结合redis如何实现数据的缓存
- Redis系列(二)--缓存设计(整表缓存以及排行榜缓存方案实现)
- 12、Spring技术栈-Redis Sentinel实现高可用缓存集群方案实战
- 详解SpringBoot集成Redis来实现缓存技术方案
- SpringBoot集成Redis来实现缓存技术方案
- redis使用工具类进行保存数据和Ehcache注解缓存类实现缓存value
- Redis实现求交集操作结果缓存的设计方案
- 3.spring + ehcache + redis缓存方案
- Mybatis+Redis纯注解方案实现缓存案例
- 基于 Redis 的分布式缓存实现方案及可靠性加固策略
- SpringBoot集成Redis来实现缓存技术方案
- springmvc结合ehcache实现共享对象缓存
- Jboot集成Redis来实现缓存技术方案
- Ehcache缓存结合Spring AOP实现接口数据缓存
- spring结合redis如何实现数据的缓存
- Nginx+Lua+Redis实现高性能缓存数据读取