memcache fdw for postgresql
Project description
Memcache foreign data wrapper for PostgreSQL written in python.
dependencies
installation
install python module
$ cd /path/to/pymcache_fdw $ python setup.py install
create extension “multicorn”
$$ create extension multicorn;
create foreign server in database
foreign server to operate cache items
$$ CREATE SERVER pymcache_fdw FOREIGN DATA WRAPPER multicorn OPTIONS ( wrapper 'pymcache_fdw.PymcacheFDW' );foreign server to show statistics
$$ CREATE SERVER pymcache_fdw_stat FOREIGN DATA WRAPPER multicorn OPTIONS ( wrapper 'pymcache_fdw.PymcacheFDWStats' );
create foreign table
foreign table to operate cache items
$$ CREATE FOREIGN TABLE pymcache_test ( key TEXT, value TEXT, expire TEXT -- optional ) SERVER pymcache_fdw OPTIONS ( host 'localhost', port '11211', row_id 'key', expire '60' -- optional, default is 0 - never expire );foreign table to show general-purpose statistics
$$ CREATE FOREIGN TABLE pymcache_stat_test ( stat_name TEXT, stat_value TEXT ) SERVER pymcache_fdw_stat;foreign table to show current memcache settings
$$ CREATE FOREIGN TABLE pymcache_stat_settings_test ( stat_name TEXT, stat_value TEXT ) SERVER pymcache_fdw_stat OPTIONS ( stats_cmd 'settings' );
usage
set cache item
$$ insert into pymcache_test(key, value) values('meaning_of_life', '42'); INSERT 0 1
set cache item, that will expire after 10 seconds
$$ insert into pymcache_test(key, value, expire) values('born_to_die', 'Lana Del Rey', 10); INSERT 0 1
update cache item with key born_to_die
$$ update pymcache_test set value = 'Grand Funk Railroad', expire = 300 where key = 'born_to_die' UPDATE 1
get cache items with set of keys in “where” clause
$$ select key, value from pymcache_test where key in ('meaning_of_life', 'k1'); key | value -----------------+------- meaning_of_life | 42 (1 row)
delete cache item with key meaning_of_life
$$ delete from pymcache_test where key = 'meaning_of_life'; DELETE 1
show general-purpose statistics related to connections
$$ select stat_name, stat_value from pymcache_stat_test where stat_name ~* 'connection'; WARNING: Using default host: localhost WARNING: Using default port: 11211 stat_name | stat_value -----------------------+------------ curr_connections | 6 total_connections | 31 connection_structures | 7 (3 rows)
show “enabled” memcache settings
$$ select stat_name, stat_value from pymcache_stat_settings_test where stat_name ~* 'enabled'; stat_name | stat_value -------------------+------------ cas_enabled | yes auth_enabled_sasl | False detail_enabled | no flush_enabled | yes (4 rows)
external links
Multicorn - postgres extension that allows to make FDW with python language
Memcached - distributed memory object caching system
Pymemcache - python module documentation
license
Copyright (c) 2016 Dmitriy Olshevskiy. MIT LICENSE.
See LICENSE.md for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pymcache_fdw-0.1.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5a749b8ca50a243c817532b948b4b6518e32123e4af6acccadae25f45b88713 |
|
MD5 | 0f36ca9fbe07ca649c0f7d76dfbdfdab |
|
BLAKE2b-256 | 0da1bd7315d9699bcbdd174a204d227d989e8c9ccd3a2e8a07c21888c17f011b |