{ "info": { "author": "Dmitriy Olshevskiy", "author_email": "olshevskiy87@bk.ru", "bugtrack_url": null, "classifiers": [], "description": "|pypi_badge|\n\n############\npymcache_fdw\n############\n\nMemcache foreign data wrapper for PostgreSQL written in python.\n\n************\ndependencies\n************\n\n* `pymemcache `__\n* `multicorn `__\n\n************\ninstallation\n************\n\n1. install python module\n\n * from sources (bitbucket)\n\n ::\n\n $ git clone https://bitbucket.org/olshevskiy87/pymcache_fdw.git\n $ cd pymcache_fdw\n $ python setup.py install\n\n * using pip\n\n ::\n\n $ pip install pymcache_fdw\n\n2. create extension \"multicorn\"\n\n ::\n\n $$ create extension multicorn;\n\n3. create foreign server in database\n\n * foreign server to operate cache items\n\n ::\n\n $$ CREATE SERVER pymcache_fdw\n FOREIGN DATA WRAPPER multicorn\n OPTIONS (\n wrapper 'pymcache_fdw.PymcacheFDW'\n );\n\n * foreign server to show statistics\n\n ::\n\n $$ CREATE SERVER pymcache_fdw_stat\n FOREIGN DATA WRAPPER multicorn\n OPTIONS (\n wrapper 'pymcache_fdw.PymcacheFDWStats'\n );\n\n4. create foreign table\n\n * foreign table to operate cache items\n\n ::\n\n $$ CREATE FOREIGN TABLE pymcache_test (\n key TEXT,\n value TEXT,\n expire TEXT -- optional\n ) SERVER pymcache_fdw OPTIONS (\n host 'localhost',\n port '11211',\n row_id 'key',\n expire '60' -- optional, default is 0 - never expire\n );\n\n * foreign table to operate cache items with prefix in the keys\n\n ::\n\n $$ CREATE FOREIGN TABLE pymcache_test_group (\n key TEXT,\n value TEXT\n ) SERVER pymcache_fdw OPTIONS (\n prefix 'group1_'\n );\n\n * foreign table to show general-purpose statistics\n\n ::\n\n $$ CREATE FOREIGN TABLE pymcache_stat_test (\n stat_name TEXT,\n stat_value TEXT\n ) SERVER pymcache_fdw_stat;\n\n * foreign table to show current memcache settings\n\n ::\n\n $$ CREATE FOREIGN TABLE pymcache_stat_settings_test (\n stat_name TEXT,\n stat_value TEXT\n ) SERVER pymcache_fdw_stat OPTIONS (\n stats_cmd 'settings'\n );\n\n*****\nusage\n*****\n\n* set cache item\n\n::\n\n $$ insert into pymcache_test(key, value)\n values('meaning_of_life', '42');\n INSERT 0 1\n\n* set cache item, that will expire after 10 seconds\n\n::\n\n $$ insert into pymcache_test(key, value, expire)\n values('born_to_die', 'Lana Del Rey', 10);\n INSERT 0 1\n\n* update cache item with key `born_to_die`\n\n::\n\n $$ update pymcache_test\n set value = 'Grand Funk Railroad', expire = 300\n where key = 'born_to_die'\n UPDATE 1\n\n* get cache items with set of keys in \"where\" clause\n\n::\n\n $$ select key, value\n from pymcache_test\n where key in ('meaning_of_life', 'k1');\n\n key | value\n -----------------+-------\n meaning_of_life | 42\n (1 row)\n\n* delete cache item with key `meaning_of_life`\n\n::\n\n $$ delete from pymcache_test\n where key = 'meaning_of_life';\n DELETE 1\n\n* set and get items with key prefix `group1_`\n\n::\n\n $$ insert into pymcache_test_group(key, value)\n values('first_item', 'first value');\n INSERT 0 1\n\n $$ select key, value\n from pymcache_test_group\n where key = 'first_item';\n\n key | value\n ------------+-------------\n first_item | first value\n (1 row)\n\n* show general-purpose statistics related to connections\n\n::\n\n $$ select stat_name, stat_value\n from pymcache_stat_test\n where stat_name ~* 'connection';\n\n WARNING: Using default host: localhost\n WARNING: Using default port: 11211\n stat_name | stat_value\n -----------------------+------------\n curr_connections | 6\n total_connections | 31\n connection_structures | 7\n (3 rows)\n\n* show \"enabled\" memcache settings\n\n::\n\n $$ select stat_name, stat_value\n from pymcache_stat_settings_test\n where stat_name ~* 'enabled';\n\n stat_name | stat_value\n -------------------+------------\n cas_enabled | yes\n auth_enabled_sasl | False\n detail_enabled | no\n flush_enabled | yes\n (4 rows)\n\n**************\nexternal links\n**************\n\n* `PostgreSQL foreign data wrappers `__\n* `Multicorn `__ - postgres extension that allows to make FDW with python language\n* `Memcached `__ - distributed memory object caching system\n* `memcached protocol `__\n* `Pymemcache `__ - python module documentation\n\n*******\nlicense\n*******\n\nCopyright (c) 2016 Dmitriy Olshevskiy. MIT LICENSE.\n\nSee LICENSE.txt for details.\n\n.. |pypi_badge| image:: https://badge.fury.io/py/pymcache_fdw.svg\n :target: https://pypi.python.org/pypi/pymcache-fdw\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/olshevskiy87/pymcache_fdw", "keywords": "memcache postgres pgsql fdw wrapper", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pymcache-fdw", "package_url": "https://pypi.org/project/pymcache-fdw/", "platform": "", "project_url": "https://pypi.org/project/pymcache-fdw/", "project_urls": { "Homepage": "https://bitbucket.org/olshevskiy87/pymcache_fdw" }, "release_url": "https://pypi.org/project/pymcache-fdw/0.2.0/", "requires_dist": [ "pymemcache" ], "requires_python": "", "summary": "memcache fdw for postgresql", "version": "0.2.0" }, "last_serial": 2404891, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "9ad5e2c19eb8c26f2a0f15e8d883c20d", "sha256": "6e395d95f14f921e9376e4a4a3e592b848f5061f5326f7ec0742872aef3a8576" }, "downloads": -1, "filename": "pymcache_fdw-0.0.10-py2-none-any.whl", "has_sig": false, "md5_digest": "9ad5e2c19eb8c26f2a0f15e8d883c20d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7261, "upload_time": "2016-08-30T15:30:29", "url": "https://files.pythonhosted.org/packages/3a/2c/a6524c3a4bb968d02c831220ca8d675077f7fb29528c188074b5ea04c28d/pymcache_fdw-0.0.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ceaf1ced2f6633add13c60a119b90b0", "sha256": "26b9d23a4e159bee8709055ed0e99a2bd9c34b716f13616e18bf9ab1f8e8b8d5" }, "downloads": -1, "filename": "pymcache_fdw-0.0.10.tar.gz", "has_sig": false, "md5_digest": "9ceaf1ced2f6633add13c60a119b90b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4191, "upload_time": "2016-08-30T15:30:31", "url": "https://files.pythonhosted.org/packages/89/4e/157d190f6652f9105c56b65ae00d651f04580e5932d52ab7b41e95cd9b76/pymcache_fdw-0.0.10.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "0f36ca9fbe07ca649c0f7d76dfbdfdab", "sha256": "a5a749b8ca50a243c817532b948b4b6518e32123e4af6acccadae25f45b88713" }, "downloads": -1, "filename": "pymcache_fdw-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0f36ca9fbe07ca649c0f7d76dfbdfdab", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6893, "upload_time": "2016-08-31T14:07:05", "url": "https://files.pythonhosted.org/packages/0d/a1/bd7315d9699bcbdd174a204d227d989e8c9ccd3a2e8a07c21888c17f011b/pymcache_fdw-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1bae623c72f88d6dfcdb9f2c63e68cbc", "sha256": "36aa40999f5844f9cbfa4c63720cc9994b7ac91240f94beedf7b567e0c9425cd" }, "downloads": -1, "filename": "pymcache_fdw-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1bae623c72f88d6dfcdb9f2c63e68cbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4476, "upload_time": "2016-08-31T14:07:08", "url": "https://files.pythonhosted.org/packages/7c/b8/8093dc654c762b6154ee089f04548b9a5be095666f7b6c2181d570e852b9/pymcache_fdw-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7f4ce901cca243fdf7c4d64b44840f00", "sha256": "d592b6f27077f71f3b1c07ce59e301459cd35c457c2fbc1a8da9bef62e5665a1" }, "downloads": -1, "filename": "pymcache_fdw-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "7f4ce901cca243fdf7c4d64b44840f00", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6989, "upload_time": "2016-08-31T17:51:50", "url": "https://files.pythonhosted.org/packages/f9/69/fbdbb16313145a6c619b18fc44066582c6674ea50068ac8322ca4185af79/pymcache_fdw-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20a70dffc1312bb9c5c2145da0d2542e", "sha256": "06388899b0df6225be9a196ad45a1748db161c9490d68410ed2b476d15e96ad6" }, "downloads": -1, "filename": "pymcache_fdw-0.1.1.tar.gz", "has_sig": false, "md5_digest": "20a70dffc1312bb9c5c2145da0d2542e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4542, "upload_time": "2016-08-31T17:51:53", "url": "https://files.pythonhosted.org/packages/42/9b/8538fd428af8de07a58a75904e1a5464e7159d23edc4cd18a8cec2cf2734/pymcache_fdw-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "593cb1dbdd15279e0c2c4fba05684f6b", "sha256": "619f222e9140959cb8ec880b6918734b4103a914e75129eb390732b710532ef3" }, "downloads": -1, "filename": "pymcache_fdw-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "593cb1dbdd15279e0c2c4fba05684f6b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7116, "upload_time": "2016-09-25T17:01:10", "url": "https://files.pythonhosted.org/packages/b6/9b/997c00101203da83c9ee00c6d5cbb2acc0bd070c308729e5d78f1bb8729b/pymcache_fdw-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9ca2d9c8d8d48cafee94b440e5d1cc0", "sha256": "1186d63cfcf8054d62737ad2e3cb8a1a5ca2958f3fdd258fbb46e3479f84d2f1" }, "downloads": -1, "filename": "pymcache_fdw-0.1.2.tar.gz", "has_sig": false, "md5_digest": "b9ca2d9c8d8d48cafee94b440e5d1cc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4619, "upload_time": "2016-09-25T17:01:12", "url": "https://files.pythonhosted.org/packages/d3/e5/7a0051edb9bbaf11f5da9cadc7a361e78250bf094d95c221ddda98616505/pymcache_fdw-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0d46116926ca57a2d45c6c4ae1af9aa7", "sha256": "98f62acf88f7b55416d39cc3c2b193141271f2dff8779899fe9e0df5c6a97c2d" }, "downloads": -1, "filename": "pymcache_fdw-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0d46116926ca57a2d45c6c4ae1af9aa7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7495, "upload_time": "2016-10-17T20:24:56", "url": "https://files.pythonhosted.org/packages/28/43/ae6eb6970bea3914ae6ae06ca53c65e799a0bbfaaa4f1dfc487cc752806b/pymcache_fdw-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37b6eec4d4fd35193ff6a0f61807057c", "sha256": "c0002e386b4a83f204c9b4abf449a44965982b2d80446a84d3fc2a265b8f3944" }, "downloads": -1, "filename": "pymcache_fdw-0.2.0.tar.gz", "has_sig": false, "md5_digest": "37b6eec4d4fd35193ff6a0f61807057c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4966, "upload_time": "2016-10-17T20:24:58", "url": "https://files.pythonhosted.org/packages/df/ae/5d4f84fe139044d9b351c61c52ee04eab46b53eff976abe2d7c37ffe8df7/pymcache_fdw-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0d46116926ca57a2d45c6c4ae1af9aa7", "sha256": "98f62acf88f7b55416d39cc3c2b193141271f2dff8779899fe9e0df5c6a97c2d" }, "downloads": -1, "filename": "pymcache_fdw-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0d46116926ca57a2d45c6c4ae1af9aa7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7495, "upload_time": "2016-10-17T20:24:56", "url": "https://files.pythonhosted.org/packages/28/43/ae6eb6970bea3914ae6ae06ca53c65e799a0bbfaaa4f1dfc487cc752806b/pymcache_fdw-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37b6eec4d4fd35193ff6a0f61807057c", "sha256": "c0002e386b4a83f204c9b4abf449a44965982b2d80446a84d3fc2a265b8f3944" }, "downloads": -1, "filename": "pymcache_fdw-0.2.0.tar.gz", "has_sig": false, "md5_digest": "37b6eec4d4fd35193ff6a0f61807057c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4966, "upload_time": "2016-10-17T20:24:58", "url": "https://files.pythonhosted.org/packages/df/ae/5d4f84fe139044d9b351c61c52ee04eab46b53eff976abe2d7c37ffe8df7/pymcache_fdw-0.2.0.tar.gz" } ] }