redis_fdw
1. 概述
redis_fdw 实现PostgreSQL与Redis键值数据库的连接,支持SELECT、INSERT、UPDATE、DELETE等操作,适用于PostgreSQL 10+及Redis 6.0左右版本,可处理哈希、列表等多种数据类型。在 PostgreSQL 和 Oracle 兼容模式下均可正常工作。
2. 安装
| 源码安装环境为 Ubuntu 24.04(x86_64),环境中已经安装了IvorySQL5及以上版本,安装路径为/usr/ivory-5。 |
2.1. 源码安装
# 安装 Hiredis 库 wget https://github.com/redis/hiredis/archive/refs/tags/v1.3.0.tar.gz tar xzvf v1.3.0.tar.gz cd hiredis-1.3.0 make sudo make install sudo ldconfig # 安装本地 Redis 服务 sudo apt update sudo apt install -y redis-server # 本地Redis服务默认开启,127.0.0.1:6379 # 使用 redis-cli 命令 创建一个管理员用户:(临时创建的用户重启 Redis 会丢失) # 用户:highgo,密码:Admin@123,启用,全键全命令 ACL SETUSER highgo on >Admin@123 ~* +@all # 下载 redis_fdw 源码包 git clone https://github.com/pg-redis-fdw/redis_fdw.git -b REL_18_STABLE cd redis_fdw # 编译安装 redis_fdw 插件 make PG_CONFIG=/usr/ivory-5/bin/pg_config sudo make install PG_CONFIG=/usr/ivory-5/bin/pg_config
| 如果出现找不到xlocale.h的错误,需要手动修改 /usr/ivory-5/include/postgresql/server/pg_config.h 删除或者注释掉 #define HAVE_XLOCALE_H 1 这一行 |
3. 使用
// 创建外部服务器 // Create a foreign server with appropriate configuration postgres=# CREATE SERVER redis_server postgres-# FOREIGN DATA WRAPPER redis_fdw postgres-# OPTIONS ( address '127.0.0.1', port '6379'); CREATE SERVER
// 创建用户映射 // User mapping postgres=# CREATE USER MAPPING FOR highgo postgres-# SERVER redis_server postgres-# OPTIONS (password 'Admin@123'); CREATE USER MAPPING
// 创建一个简单表 postgres=# CREATE FOREIGN TABLE redis_db0 ( postgres(# key text, postgres(# val text postgres(# ) postgres-# SERVER redis_server postgres-# OPTIONS ( postgres(# database '0' postgres(# ); CREATE FOREIGN TABLE
// 插入数据
postgres=# insert into redis_db0 values('k2', 'v2');
INSERT 0 1
// 读取数据 postgres=# select * from redis_db0; key | val -----+----- k2 | v2 (1 row)