6.11. JDBC 字符串的缓存存储
JDBC String 型缓存存储 JdbcStringBasedStore,使用 JDBC 驱动程序在底层数据库中加载和存储值。
JDBC String-Based 缓存存储:
- 将每个条目存储在表中,以提高并发负载吞吐量。
-
使用一个简单的一对一映射,使用键到
字符串接口将每个键映射到String对象。
数据网格提供了一个处理原语类型的默认实施DefaultTwoWayKey2StringMapper。
除了用于存储缓存条目的数据表外,存储还会创建一个 _META 表来存储元数据。此表用于确保任何现有数据库内容与当前数据网格版本和配置兼容。
默认情况下,Data Grid 共享不存储,这意味着集群中的所有节点都写入每个更新上的底层存储。如果只想操作对底层数据库进行写入,则必须将 JDBC 存储配置为共享。
分段
JdbcStringBasedStore 默认使用分段,它需要一个数据库表中的列来代表条目属于的片段。
6.11.1. 配置基于字符串的 JDBC 缓存存储 复制链接链接已复制到粘贴板!
使用 JDBC 字符串的缓存配置可连接到数据库的数据网格缓存。
先决条件
-
远程缓存:将数据库驱动程序复制到 Data Grid 服务器安装的
server/lib目录中。 嵌入式缓存:将
infinispan-cachestore-jdbc依赖项添加到您的pom文件。<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-cachestore-jdbc</artifactId> </dependency>
<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-cachestore-jdbc</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
使用以下方法之一创建基于 JDBC 字符串的缓存存储配置:
声明性,添加
持久性元素或字段,然后添加带有以下架构命名空间的string-keyed-jdbc-store:xmlns="urn:infinispan:config:store:jdbc:13.0"
xmlns="urn:infinispan:config:store:jdbc:13.0"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以编程方式,将以下方法添加到
ConfigurationBuilder中:persistence().addStore(JdbcStringBasedStoreConfigurationBuilder.class)
persistence().addStore(JdbcStringBasedStoreConfigurationBuilder.class)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
使用
dialect属性或dialect ()方法指定数据库的 dialect。 根据情况配置 JDBC 字符串的缓存存储的任何属性。
例如,指定缓存存储是否与带有 shared 属性或
方法的多个缓存实例共享。shared()- 添加 JDBC 连接工厂,使数据网格能够连接到数据库。
- 添加存储缓存条目的数据库表。
JDBC 字符串的缓存存储配置
XML
JSON
YAML
ConfigurationBuilder