Memcached使用总结之:使用Python操作memcache

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错误当成是缓存丢失
  5. 主要URL:
    1. pypi:https://pypi.python.org/pypi/pymemcache
    2. 官方文档:
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值