redis_fdw
查询外部Redis数据源
仓库
pg-redis-fdw/redis_fdw
https://github.com/pg-redis-fdw/redis_fdw
源码
redis_fdw-1.0.tar.gz
redis_fdw-1.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
redis_fdw | 1.0 | FDW | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 8710 | redis_fdw | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | mongo_fdw redis kafka_fdw wrappers multicorn spat pgmemcache odbc_fdw |
|---|
multiple branch for different pg major versions
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0 | 1817161514 | redis_fdw | - |
| RPM | PIGSTY | 1.0 | 1817161514 | redis_fdw_$v | - |
| DEB | PIGSTY | 1.0 | 1817161514 | postgresql-$v-redis-fdw | - |
构建
您可以使用 pig build 命令构建 redis_fdw 扩展的 RPM / DEB 包:
pig build pkg redis_fdw # 构建 RPM / DEB 包
安装
您可以直接安装 redis_fdw 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
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;
用法
创建服务器
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';
表选项
| 选项 | 描述 |
|---|---|
database | Redis 数据库编号(默认 0) |
tabletype | hash、list、set 或 zset(省略则为标量键值) |
tablekeyprefix | 按键前缀过滤项目 |
tablekeyset | 从特定 Redis 集合中获取键 |
singleton_key | 从单个 Redis 键访问所有值 |
只能使用 tablekeyset 或 tablekeyprefix 其中之一。不要与 singleton_key 组合使用。
哈希值以交替键值对的形式在 text[] 数组中返回。列表、集合和有序集合也以数组形式返回值。