💡
原文英文,约1500词,阅读约需6分钟。
📝
内容提要
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发出删除语句,并通过订阅通知。
- 当前支持的订阅粒度为表级,行级粒度尚未实现,但正在考虑中。
➡️