彼得·摩根:pgec 读取:内存复制缓存,写入:具有 Redis API 的 PostgreSQL

彼得·摩根:pgec 读取:内存复制缓存,写入:具有 Redis API 的 PostgreSQL

💡 原文英文,约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发出删除语句,并通过订阅通知。
  • 当前支持的订阅粒度为表级,行级粒度尚未实现,但正在考虑中。
➡️

继续阅读