redis_fdw

查询外部Redis数据源

概览

扩展包名版本分类许可证语言
redis_fdw1.0FDWPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
8710redis_fdw-
相关扩展mongo_fdw redis kafka_fdw wrappers multicorn spat pgmemcache odbc_fdw

multiple branch for different pg major versions

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY1.01817161514redis_fdw-
RPMPIGSTY1.01817161514redis_fdw_$v-
DEBPIGSTY1.01817161514postgresql-$v-redis-fdw-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
d12.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
d13.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
d13.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u22.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u22.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u24.x86_64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
u24.aarch64
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0
PIGSTY 1.0

构建

您可以使用 pig build 命令构建 redis_fdw 扩展的 RPM / DEB 包:

pig build pkg redis_fdw         # 构建 RPM / DEB 包

安装

您可以直接安装 redis_fdw 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install redis_fdw;          # 当前活跃 PG 版本安装
pig ext install -y redis_fdw -v 18  # PG 18
pig ext install -y redis_fdw -v 17  # PG 17
pig ext install -y redis_fdw -v 16  # PG 16
pig ext install -y redis_fdw -v 15  # PG 15
pig ext install -y redis_fdw -v 14  # PG 14
dnf install -y redis_fdw_18       # PG 18
dnf install -y redis_fdw_17       # PG 17
dnf install -y redis_fdw_16       # PG 16
dnf install -y redis_fdw_15       # PG 15
dnf install -y redis_fdw_14       # PG 14
apt install -y postgresql-18-redis-fdw   # PG 18
apt install -y postgresql-17-redis-fdw   # PG 17
apt install -y postgresql-16-redis-fdw   # PG 16
apt install -y postgresql-15-redis-fdw   # PG 15
apt install -y postgresql-14-redis-fdw   # PG 14

创建扩展

CREATE EXTENSION redis_fdw;

用法

redis_fdw: 查询 Redis 服务器的外部数据包装器

创建服务器

CREATE EXTENSION redis_fdw;

CREATE SERVER redis_server FOREIGN DATA WRAPPER redis_fdw
  OPTIONS (address '127.0.0.1', port '6379');

服务器选项: address(默认 127.0.0.1)、port(默认 6379)。

创建用户映射

CREATE USER MAPPING FOR pguser SERVER redis_server
  OPTIONS (password 'secret');

标量键值对

CREATE FOREIGN TABLE redis_db0 (
  key text,
  val text
)
SERVER redis_server
OPTIONS (database '0');

SELECT * FROM redis_db0;

哈希表(带键前缀)

CREATE FOREIGN TABLE redis_hash (
  key text,
  val text[]
)
SERVER redis_server
OPTIONS (database '0', tabletype 'hash', tablekeyprefix 'mytable:');

INSERT INTO redis_hash VALUES ('mytable:r1', '{prop1,val1,prop2,val2}');
UPDATE redis_hash SET val = '{prop3,val3}' WHERE key = 'mytable:r1';
DELETE FROM redis_hash WHERE key = 'mytable:r1';
SELECT * FROM redis_hash;

哈希表(单键)

CREATE FOREIGN TABLE redis_singleton (
  key text,
  val text
)
SERVER redis_server
OPTIONS (database '0', tabletype 'hash', singleton_key 'myhash');

INSERT INTO redis_singleton VALUES ('field1', 'value1');
UPDATE redis_singleton SET val = 'newvalue' WHERE key = 'field1';
DELETE FROM redis_singleton WHERE key = 'field1';

表选项

选项描述
databaseRedis 数据库编号(默认 0
tabletypehashlistsetzset(省略则为标量键值)
tablekeyprefix按键前缀过滤项目
tablekeyset从特定 Redis 集合中获取键
singleton_key从单个 Redis 键访问所有值

只能使用 tablekeysettablekeyprefix 其中之一。不要与 singleton_key 组合使用。

哈希值以交替键值对的形式在 text[] 数组中返回。列表、集合和有序集合也以数组形式返回值。


最后修改 2026-03-14: update extension metadata (953cbd0)