内容提要
PGEC是一种Apache许可的实时内存PostgreSQL逻辑复制缓存,支持Redis、Memcached和REST API,可以实时与基础PostgreSQL数据库保持一致,每个复制的PostgreSQL表表示为Redis哈希,只有与表中存在的列名匹配的字段才能存储或检索。
关键要点
-
PGEC是一种Apache许可的实时内存PostgreSQL逻辑复制缓存,支持Redis、Memcached和REST API。
-
变更操作(如DEL或HSET)直接更新PostgreSQL,读取操作(如HGET或EXISTS)由缓存直接服务。
-
每个复制的PostgreSQL表表示为Redis哈希,表的主键或复合键用作哈希的键,列作为哈希中的字段。
-
只允许与表中存在的列名匹配的字段存储或检索。
-
实时复制流确保缓存与基础PostgreSQL数据库的更改保持一致,并可通过PSUBSCRIBE发送更改通知。
-
示例中使用的样本数据为成绩数据,数据在PostgreSQL初始化时加载。
-
使用Redis API可以直接从内存缓存中获取数据,而无需查询PostgreSQL。
-
可以设置Redis订阅以监控成绩表的更改,并通过HSET更新成绩。
-
PGEC会在PostgreSQL中执行SQL语句以更新成绩,并通过订阅通知更改。
-
PGEC支持的Redis命令包括del、exists、hexists、hget、hgetall、hkeys、hlen和hset。
-
更新可以来自任何来源,不仅限于PGEC,直接在PostgreSQL中更新也会通过订阅通知。
-
删除操作将导致PGEC向PostgreSQL发出删除语句,并通过订阅通知。
-
当前支持的订阅粒度为表级,行级粒度尚未实现,但正在考虑中。