生态系统:Apache Ignite
来自 PostgreSQL Wiki
跳转至导航跳转至搜索测试过程
以下为结合使用 Apache Ignite 和 PostgreSQL 的方法。
- Ignite 通过 JDBC 将驻留内存的缓存对象持久化到 PostgreSQL(CachedJdbcBlobStore 和 CachedJdbcPojoStore)
- Ignite 不会直接与 PostgreSQL 交互,而是用作 Hibernate ORM 的二级缓存
- Ignite 充当 memcached 的替代品,而 PostgreSQL 服务器通过 pgmemcache 扩展处理缓存数据
此处显示其作为 memcached 替代品的使用方式。首先,下载并解压 Apache Ignite 二进制分发包。
然后启动 Ignite 服务器。Ignite 服务器开始在端口 11211 接受 memcached 二进制协议。
$ cd ${Ignite_home_dir} $ bin/ignite.sh examples/config/example-cache.xml
按照 ${pgmemcache_dir}/README.rst 中所述安装 pgmemcache 扩展。启动 PostgreSQL 服务器。
要运行 pgmemcache 回归测试,请将 ${pgmemcache_dir}/test.sql 第一行中的端口号更改为 11211,如下所示
SELECT memcache_server_add('localhost:11211');
运行测试。
$ psql -f test.sql postgres
但使用 memcache_incr()/memcache_decr() 对整数值执行增量/减量操作似乎无效。如果您尝试对先前由 memcache_add()/memcache_set() 缓存的对象执行增量/减量操作,该函数调用会报告一条警告消息并返回 -1。但是对 memcache_incr()/memcache_decr() 后续的调用会创建一个新的缓存条目并对该条目的值执行增量/减量操作。这可能是由于 Ignite 的某个缺陷,因为 pgmemcache 可与 memcached 本身正常配合使用。