engobi / redis_fdw Goto Github PK
View Code? Open in Web Editor NEWAn experimental PostgreSQL foreign data wrapper for Redis
An experimental PostgreSQL foreign data wrapper for Redis
Redis FDW for PostgreSQL 9.1+ ============================== This PostgreSQL extension implements a Foreign Data Wrapper (FDW) for the Redis key/value database: http://redis.io/ This code is experimental, and largely intended as a pet project for me to experiment with and learn about FDWs in PostgreSQL. By all means use it, but do so entirely at your own risk! You have been warned! Building -------- To build the code, you need the hiredis C interface to Redis installed on your system. You can checkout the hiredis from GitHub: https://github.com/antirez/hiredis Once that's done, the extension can be built with: PATH=/usr/local/pgsql91/bin/:$PATH make USE_PGXS=1 make sudo PATH=/usr/local/pgsql91/bin/:$PATH make USE_PGXS=1 install (assuming you have PostgreSQL 9.1 in /usr/local/pgsql91). I've tested on Mac OS X 10.6 only, but other *nix's should also work. I haven't tested on Windows, but the code should be good on MinGW. Limitations ----------- - There's no such thing as a cursor in Redis, or MVCC, which leaves us with no way to atomically query the database for the available keys and then fetch each value. So, we get a list of keys to begin with, and then fetch whatever records still exist as we build the tuples. - We can only push down a single qual to Redis, which must use the TEXTEQ operator, and must be on the 'key' column. - There is currently no support for non-scalar datatypes in Redis such as lists. Usage ----- The following parameters can be set on a Redis foreign server: address: The address or hostname of the Redis server. Default: 127.0.0.1 port: The port number on which the Redis server is listening. Default: 6379 The following parameter can be set on a Redis foreign table: database: The numeric ID of the Redis database to query. Default: 0 The following parameter can be set on a user mapping for a Redis foreign server: password: The password to authenticate to the Redis server with. Default: <none> Example ------- CREATE SERVER redis_server FOREIGN DATA WRAPPER redis_fdw OPTIONS (address '127.0.0.1', port '6379'); CREATE FOREIGN TABLE redis_db0 (key text, value text) SERVER redis_server OPTIONS (database '0'); CREATE USER MAPPING FOR PUBLIC SERVER redis_server OPTIONS (password 'secret'); -- Dave Page [email protected]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.