This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

pymcache_fdw

Memcache foreign data wrapper for PostgreSQL written in python.

dependencies

installation

  1. install python module
  • from sources (bitbucket)

    $ git clone https://bitbucket.org/olshevskiy87/pymcache_fdw.git
    $ cd pymcache_fdw
    $ python setup.py install
    
  • using pip

    $ pip install pymcache_fdw
    
  1. create extension “multicorn”

    $$ create extension multicorn;
    
  2. 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'
    );
    
  1. 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 operate cache items with prefix in the keys

    $$ CREATE FOREIGN TABLE pymcache_test_group (
        key TEXT,
        value TEXT
    ) SERVER pymcache_fdw OPTIONS (
        prefix 'group1_'
    );
    
  • 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
  • set and get items with key prefix group1_
$$ insert into pymcache_test_group(key, value)
   values('first_item', 'first value');
INSERT 0 1

$$ select key, value
   from pymcache_test_group
   where key = 'first_item';

    key     |    value
------------+-------------
 first_item | first value
(1 row)
  • 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)

license

Copyright (c) 2016 Dmitriy Olshevskiy. MIT LICENSE.

See LICENSE.txt for details.

Release History

Release History

0.2.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.10

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pymcache_fdw-0.2.0-py2-none-any.whl (7.5 kB) Copy SHA256 Checksum SHA256 py2 Wheel Oct 17, 2016
pymcache_fdw-0.2.0.tar.gz (5.0 kB) Copy SHA256 Checksum SHA256 Source Oct 17, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting