一个全面、快速、纯 Python 的 memcached 客户端
项目描述
pyelasticache_client
=========================
.. 图片:: https://travis-ci.org/touchvie/pyelasticache_client.svg?branch=master
:目标:https://travis-ci.org/touchvie/pyelasticache_client
.. 图片::https ://img.shields.io/pypi/v/pyelasticache_client.svg
:目标:https://pypi.python.org/ pypi/pyelasticache_client
一个全面、快速、纯 Python 的 memcached 客户端,具有一致的密钥散列
和节点自动发现。
派生自 Pinterest pymemcache 项目:
https ://github.com/pinterest/pymemcache
pyelasticache_client 支持以下功能:
* memcached 文本协议的完整实现。
*套接字连接和发送/接收调用的可配置超时。
* 访问“noreply”标志,可以显着提高写入速度。
* 灵活、简单的序列化和反序列化方法。
* 将网络和 memcached 错误视为缓存未命中的(可选)能力。
* 可选择使用 Ketama 散列在节点上一致地分配缓存键。
* 通过“config cluster”选项自动发现和更新集群节点
安装pyelasticache_client
================================ =
从 pip 安装:
.. code-block:: bash
pip install pyelasticache_client
对于开发,从 github 克隆并使用以下命令运行测试:
.. code-block:: bash
git clone https://github.com/touchvie/pyelasticache_client。混帐
cd pyelasticache_client
python setup.py nosetests
用法
=====
请参阅此处的文档:http: //pymemcache.readthedocs.org/en/latest/
与其他库的比较
============== =================
pylibmc
-------
pylibmc 库是 libmemcached 的包装器,用 C 实现。它
速度快,实现一致性哈希,完整的 memcached 协议和超时。
它不提供对“noreply”标志的访问,也不提供
用于序列化和反序列化的内置 API。它也不是纯 Python,
因此不可能将它与 gevent 之类的库一起使用。
Python-memcache
---------------
python-memcache 库实现了整个 memcached 文本协议,
所有套接字调用都有一个超时,并且具有灵活的
序列化和反序列化方法。它也是完全用 Python 编写的,因此
可以很好地与 gevent 等库配合使用。但是,它与使用线程
局部变量有关,没有实现“noreply”,不能将错误视为缓存未命中,并且
比 pylibmc 和 pymemcache 都慢。它还与
处理 memcached 服务器集群的特定方法相关联。
memcache_client
---------------
mixpanel 的团队还组装了一个纯 Python 的 memcached 客户端。它对
套接字超时有更细粒度的支持,只连接到一个
主持人。但是,它不支持大多数 memcached API(只是 get、set、
delete 和 stats),不支持“noreply”,不支持序列化或
反序列化,并且不能将错误视为缓存未命中。
外部链接
==============
memcached 文本协议参考页面:
https ://github.com/memcached/memcached/blob/master/doc/protocol.txt
python-memcached 库(另一个纯 Python 库):
https ://github.com/linsomniac/python-memcached
Mixpanel 关于他们的 Python 内存缓存客户端的博客文章:http:
//code.mixpanel.com/2012/07/16/we-went- down-so-we-wrote-a-better-pure-python-memcache-client/
Mixpanel 的纯 Python memcached 客户端:
https://github.com/mixpanel/memcache_client
Ketama 哈希算法:
http ://www.last.fm/user/RJ/journal/2007/04/10/rz_libketama_-_a_consistent_hashing_algo_for_memcache_clients
Memcached 自动发现功能:
http://docs。 aws.amazon.com/AmazonElastiCache/latest/UserGuide/AutoDiscovery.AddingToYourClientLibrary.html
Credits
=======
* `Charles Gordon <http://github.com/cgordon>`_
* `Dave Dash <http:// /github.com/davedash>`_
* `Dan Crosta <http://github.com/dcrosta>`_
* `Julian Berman <http://github.com/Julian>`_
* `Mark Shirley <http: //github.com/maspwr>`_
* `Tim Bart <http://github.com/pims>`_
* `Thomas Orozco <http://github.com/krallin>`_
*`Marc Abramowitz <http://github.com/msabramo>`_
*`Marc-Andre Courtois <http://github.com/mcourtois>`_
*`Julien Danjou <http://github.com/jd >`_
* `INADA Naoki <http://github.com/methane>`_
* `James Socol <http://github.com/jsocol>`_
* `Joshua Harlow <http://github.com/ harlowja>`_
* `John Anderson <http://github.com/sontek>`_
* `Adam Chainz <http://github.com/adamchainz>`_
* `Ernest W. Durbin III <https:// github.com/ewdurbin>`_
* `Remco van Oosterhout <https://github.com/Vhab>`_
* `David Fierro <https://github.com/davidfierro>`_
* `Guillermo Menéndez <https: //github.com/gmcorral>`_
*`Natalia Angulo <https://github.com/AnguloHerrera>`_
更改日志
===========
1.3.5 版中的新功能
--------------------
* 重试次数设置为零时 HashClient 的错误修复。
* 将 VERSION 命令添加到客户端。
1.3.4 版中的新功能
--------------------
* HashClient 的错误修复,可纠正没有工作服务器时的行为。
版本 1.3.3 中的新功能
--------------------
* 向 Travis 构建添加缓存。
* HashClient 中可插入哈希的错误修复。
* 向客户端 ctor 添加 default_noreply 参数。
1.3.2 版中的新功能
--------------------
* 使 Memcache Exceptions 的位置向后兼容。
版本 1.3.0 中的新功能
--------------------
* Python 3 支持
* 引入了HashClient,它使用一致的hasing 在许多memcached 节点之间分配键。它还可以检测服务器宕机并在可用节点之间重新平衡密钥。
* sock.recv() 引发 EINTR 时重试
1.2.9 版中的新功能
--------------------
* 引入 PooledClient 一个线程安全的客户端池
=========================
.. 图片:: https://travis-ci.org/touchvie/pyelasticache_client.svg?branch=master
:目标:https://travis-ci.org/touchvie/pyelasticache_client
.. 图片::https ://img.shields.io/pypi/v/pyelasticache_client.svg
:目标:https://pypi.python.org/ pypi/pyelasticache_client
一个全面、快速、纯 Python 的 memcached 客户端,具有一致的密钥散列
和节点自动发现。
派生自 Pinterest pymemcache 项目:
https ://github.com/pinterest/pymemcache
pyelasticache_client 支持以下功能:
* memcached 文本协议的完整实现。
*套接字连接和发送/接收调用的可配置超时。
* 访问“noreply”标志,可以显着提高写入速度。
* 灵活、简单的序列化和反序列化方法。
* 将网络和 memcached 错误视为缓存未命中的(可选)能力。
* 可选择使用 Ketama 散列在节点上一致地分配缓存键。
* 通过“config cluster”选项自动发现和更新集群节点
安装pyelasticache_client
================================ =
从 pip 安装:
.. code-block:: bash
pip install pyelasticache_client
对于开发,从 github 克隆并使用以下命令运行测试:
.. code-block:: bash
git clone https://github.com/touchvie/pyelasticache_client。混帐
cd pyelasticache_client
python setup.py nosetests
用法
=====
请参阅此处的文档:http: //pymemcache.readthedocs.org/en/latest/
与其他库的比较
============== =================
pylibmc
-------
pylibmc 库是 libmemcached 的包装器,用 C 实现。它
速度快,实现一致性哈希,完整的 memcached 协议和超时。
它不提供对“noreply”标志的访问,也不提供
用于序列化和反序列化的内置 API。它也不是纯 Python,
因此不可能将它与 gevent 之类的库一起使用。
Python-memcache
---------------
python-memcache 库实现了整个 memcached 文本协议,
所有套接字调用都有一个超时,并且具有灵活的
序列化和反序列化方法。它也是完全用 Python 编写的,因此
可以很好地与 gevent 等库配合使用。但是,它与使用线程
局部变量有关,没有实现“noreply”,不能将错误视为缓存未命中,并且
比 pylibmc 和 pymemcache 都慢。它还与
处理 memcached 服务器集群的特定方法相关联。
memcache_client
---------------
mixpanel 的团队还组装了一个纯 Python 的 memcached 客户端。它对
套接字超时有更细粒度的支持,只连接到一个
主持人。但是,它不支持大多数 memcached API(只是 get、set、
delete 和 stats),不支持“noreply”,不支持序列化或
反序列化,并且不能将错误视为缓存未命中。
外部链接
==============
memcached 文本协议参考页面:
https ://github.com/memcached/memcached/blob/master/doc/protocol.txt
python-memcached 库(另一个纯 Python 库):
https ://github.com/linsomniac/python-memcached
Mixpanel 关于他们的 Python 内存缓存客户端的博客文章:http:
//code.mixpanel.com/2012/07/16/we-went- down-so-we-wrote-a-better-pure-python-memcache-client/
Mixpanel 的纯 Python memcached 客户端:
https://github.com/mixpanel/memcache_client
Ketama 哈希算法:
http ://www.last.fm/user/RJ/journal/2007/04/10/rz_libketama_-_a_consistent_hashing_algo_for_memcache_clients
Memcached 自动发现功能:
http://docs。 aws.amazon.com/AmazonElastiCache/latest/UserGuide/AutoDiscovery.AddingToYourClientLibrary.html
Credits
=======
* `Charles Gordon <http://github.com/cgordon>`_
* `Dave Dash <http:// /github.com/davedash>`_
* `Dan Crosta <http://github.com/dcrosta>`_
* `Julian Berman <http://github.com/Julian>`_
* `Mark Shirley <http: //github.com/maspwr>`_
* `Tim Bart <http://github.com/pims>`_
* `Thomas Orozco <http://github.com/krallin>`_
*`Marc Abramowitz <http://github.com/msabramo>`_
*`Marc-Andre Courtois <http://github.com/mcourtois>`_
*`Julien Danjou <http://github.com/jd >`_
* `INADA Naoki <http://github.com/methane>`_
* `James Socol <http://github.com/jsocol>`_
* `Joshua Harlow <http://github.com/ harlowja>`_
* `John Anderson <http://github.com/sontek>`_
* `Adam Chainz <http://github.com/adamchainz>`_
* `Ernest W. Durbin III <https:// github.com/ewdurbin>`_
* `Remco van Oosterhout <https://github.com/Vhab>`_
* `David Fierro <https://github.com/davidfierro>`_
* `Guillermo Menéndez <https: //github.com/gmcorral>`_
*`Natalia Angulo <https://github.com/AnguloHerrera>`_
更改日志
===========
1.3.5 版中的新功能
--------------------
* 重试次数设置为零时 HashClient 的错误修复。
* 将 VERSION 命令添加到客户端。
1.3.4 版中的新功能
--------------------
* HashClient 的错误修复,可纠正没有工作服务器时的行为。
版本 1.3.3 中的新功能
--------------------
* 向 Travis 构建添加缓存。
* HashClient 中可插入哈希的错误修复。
* 向客户端 ctor 添加 default_noreply 参数。
1.3.2 版中的新功能
--------------------
* 使 Memcache Exceptions 的位置向后兼容。
版本 1.3.0 中的新功能
--------------------
* Python 3 支持
* 引入了HashClient,它使用一致的hasing 在许多memcached 节点之间分配键。它还可以检测服务器宕机并在可用节点之间重新平衡密钥。
* sock.recv() 引发 EINTR 时重试
1.2.9 版中的新功能
--------------------
* 引入 PooledClient 一个线程安全的客户端池
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pyelasticache_client-0.1.3.tar.gz
(52.3 kB
查看哈希)
内置分布
关
pyelasticache_client -0.1.3.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 2fd7e21d84a93a87e72477c18fb89a20271d3ebf4b33996eb6b9845ad05111aa |
|
| MD5 | 214664a6d2e4a67d9ae6de19e9922fe5 |
|
| 布莱克2-256 | c18f48b0386cedc1e395ac1ea44dccc043f589735ab2d0cc8b4fecc00fd44abc |
关
pyelasticache_client -0.1.3-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 92608b0979534249051af1fab64fd248bbad1b869eaa40a431972cea1525eaa3 |
|
| MD5 | 53e2c068eda5c4a49f211d8c9ab6b0c2 |
|
| 布莱克2-256 | 29fa785b73273fdda1296e4e3e35cba955ec039821cb88178decc6eb246e871a |