Python连接memcached的库有很多,处于简单以及高效的原则,最终选择了pymemcache,

  1. 优点
    1. 完全实现了memcached text协议
    2. 对于send/recv操作可以配置timeout
    3. 支持"noreply"特性,该可行可以先出的提高写的速度
    4. 使序列化/反序列化更简单
    5. 可以将网络异常,memecached错误当成是缓存丢失
  2. 安装pymemcache
    pip install pymemcache
  3. 使用pymemcache
    1. 基本操作

      
      
      from pymemcache.client.base import Client
      
      client = Client(('localhost', 11211))
      client.set('some_key', 'some_value')
      result = client.get('some_key')
    2. 使用memcache集群
      使用一致性HASH算法支持集群
      
      
      from pymemcache.client.hash import HashClient
      
      client = HashClient([('127.0.0.1', 11211),('127.0.0.1', 11212)])
      client.set('some_key', 'some value')
      result = client.get('some_key')
    3. 序列化操作
      
      
      import json
      from pymemcache.client.base import Client def json_serializer(key, value):if type(value)== str:return value, 1
      return json.dumps(value), 2 def json_deserializer(key, value, flags):if flags == 1:return value
      if flags == 2:return json.loads(value)raiseException("Unknown serialization format") client = Client(('localhost', 11211), serializer=json_serializer,
      deserializer=json_deserializer)
      client.set('key',{'a':'b', 'c':'d'})
      result = client.get('key')
  4. 最佳实践
    1. 在构造Client时,添加timeout 的配置,防止block操作
    2. 使用“noreply”来提高性能,默认情况下改属性在“set”, “add”, “replace”, “append”, “prepend”, and “delete”.操作时是开启的,“cas”, “incr” and “decr”.操作时关闭的
    3. 尽可能的使用get_many以及gets_many操作,来减少round trip的操作实践
    4. 使用“ignore_exc” 属性,将网络异常,memecached错误当成是缓存丢失

使用Python操作memcache的更多相关文章

  1. 文成小盆友python-num11-(2) python操作Memcache Redis

    本部分主要内容: python操作memcache python操作redis 一.python 操作 memcache memcache是一套分布式的高速缓存系统,由LiveJournal的Brad ...

  2. Python之路【第十篇】Python操作Memcache、Redis、RabbitMQ、SQLAlchemy、

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  3. python操作memcache

            48.python 操作memcached                  Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存 ...

  4. Python自动化运维之17、Python操作 Memcache、Redis、RabbitMQ

    一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...

  5. Python操作 Memcache、Redis、RabbitMQ、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  6. Python操作 Memcache、Redis、RabbitMQ

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  7. Python操作 Memcache、Redis

    Python操作 Memcached.Redis 一.Memcached和Redis对比 1.1 Memcached和Redis的数据类型对比 memcached只有一种数据类型,key对应value ...

  8. python 操作 memcache

    目录 Memcached Memcached安装 python操作Memcached Memcache模块常用方法 Memcached Memcached是一个高性能的分布式内存对象缓存系统,用于动态 ...

  9. 使用python操作Memcache、Redis、RabbitMQ、

    Memcache 简述: Memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要 ...

  10. Python之路【第十篇】Python操作Memcache、Redis、RabbitMQ、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

随机推荐

  1. 移动支付--银联,支付宝,微信(android)

    在这个移动互联网快速发展的时代,手机已经成为人们生活或者出行之中必不可少的设备了,如今非常多城市的商户都能够採用支付宝,微信支付了.人们出门仅仅须要随身携带带手机.不用带大量现金就能够放心购物了.如今 ...

  2. WCF服务对于处理客户端连接的一点思考

    对于每个客户端的,服务端是否为每个客户端有专门的“通道”? 目的:想在服务端记录下来客户端的访问记录(进入.各个操作.离开等信息),并将其执行的操作独立记录在各个客户端对应的日志中. 下面是代码: 契 ...

  3. Linux cd命令 pwd命令

    1.cd命令 cd:及Change Directory改变目录的意思,用于更改到指定的目录 用法:cd [目录] 其中 "."代表当前目录,".."代表当前目录 ...

  4. Centos配置nginx反向代理8090端口到80端口

    下面,我就来说说怎么反向代理自己的项目到默认80端口. 1)安装nginx:yum install nginx -y 2)启动nginx:service nginx start或者systemctl ...

  5. 利用ssh的私钥登录Linux server

    [https://blog.csdn.net/hello0370/article/details/41650513] 1.创建一个private key的文件,我使用vim编辑器,创建vi my_pr ...

  6. 多个JS文件性能优化

    页面中引入的JS文件是阻塞式加载的,这样会影响页面性能.以下是JS文件性能优化方法: 一:将所有的<script>标签放到页面底部,也就是</body>闭合标签之前,这能确保在 ...

  7. APP移动端自动化测试工具选型“兵器谱”一览(主流开源工具)

    (下面大多数工具都是开源工具,在github,码云等开源平台都能找到) "测试那点事儿”在看到360旗下的测试团队整理的关于目前APP移动端自动化相关的工具,觉得总结的很到位,对目前大多数中 ...

  8. Log4net 自定义字段 写入Oracle 使用ODP.NET Managed驱动

    一.环境说明: 开发工具:vs2010   ,数据库:oracle 11g ,版本:log4net的目前最新版本1.2.13.0    :  Oracle.ManagedDataAccess.dll ...

  9. PKU 1226 Substrings(字符串匹配+暴搜KMP模板)

    原题大意:原题链接 给出n个字符串,找出一个最长的串s,使s或者s的反转字符串(只要其中一个符合就行)同时满足是这n个串的子串. 对于样例,第一组ABCD   BCDFF  BRCD最长的串就是CD; ...

  10. HashMap底层原理

    原文出自:http://zhangshixi.iteye.com/blog/672697 1.    HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射 ...