内存数据库目前有很多,例如开源的redis,memcached,spark等其中Oracle weblogic9版本以后开始自带内存数据库coherence。下面介绍一下我学习了解这个产品功能。
大家在对产品进行选型的时候,首先考虑是否满足自己的业务、另一个就是可靠性。
一、coherence适应业务场景可以单独使用也可以同weblogic整合使用:
1、数制库压力卸载(DB Offload)
2、大型主机压力卸载(Mainframe Offload)
3、数据高可用(Data Always On)
4、内存数据库
5、WEB服务横向扩容
6、跨WEB应用会话共享
7、多页面会话数据共享
8、查询结果分页
9、用户资料共享
10、海量上下文数据共享
11、跨语言数据共享
12、对象/数据库自动映射
13、SOA服务总线数据缓存
14、数据异地备份
15、实时数据查询与计算
16、实时状态机
17、复杂事件处理
二、coherence支持缓存模式
1、地缓存 2、复制式缓存 3、分区缓存 4、就近缓存
Cache的类型选择Coherence支持多种数据类型,但partitioned、near和replicated是最常用的的拓扑类型,
1、Partitioned:每一个实例包括一部分数据,并在其它实例保留备份
增加实例会提供整个集群的性能
读/写都需要网络传输和数据的序列化/反序列化
2、Near:在本地保留少部分的本地缓存
对于缓存在本地的数据读取性能高
数据同步时需要一些额外的开销
3、Replicated:每个实例包含相同的数据
非常高的读取性能
写操作比较慢
4、应用场景举例
Replicated:数据量少,但频繁地读——元数据、配置数据
Partitioned:数据量大,读写都有——大规模数据缓存
Near:类似于partitioned,但有少部分数据会经常进行读操作
读写比例:Replicated和Near建议的读写比例通常远大于1:1,例如在10:1,或更高
对于大数据的缓存,建议使用partitioned或者near,因为它们的扩展能力对读写操作来说基本上是线性的