`
liu_87663663
  • 浏览: 36399 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python-memcached 使用方法总结

 
阅读更多

 

1.Python-memcached API总结

整个memcache.py只有1241行,相当精简

主要方法如下:

@set(key,val,time=0,min_compress_len=0)

无条件键值对的设置,其中的time用于设置超时,单位是秒,而min_compress_len则用于设置zlib 压缩(注:zlib是提供数据压缩用的函式库)

@set_multi(mapping,time=0,key_prefix='',min_compress_len=0)

设置多个键值对,key_prefix是key的前缀,完整的键名是key_prefix+key, 使用方法如下

   >>> mc.set_multi({'k1' : 1, 'k2' : 2}, key_prefix='pfx_') == []

   >>> mc.get_multi(['k1', 'k2', 'nonexist'], key_prefix='pfx_') == {'k1' : 1, 'k2' : 2}

@add(key,val,time=0,min_compress_len=0)

添加一个键值对,内部调用_set()方法

@replace(key,val,time=0,min_compress_len=0)

替换value,内部调用_set()方法

@get(key)

根据key去获取value,出错返回None

@get_multi(keys,key_prefix='')

获取多个key的值,返回的是字典。keys为key的列表

@delete(key,time=0)

删除某个key。time的单位为秒,用于确保在特定时间内的set和update操作会失败。如果返回非0则代表成功

@incr(key,delta=1)

自增变量加上delta,默认加1,使用如下

>>> mc.set("counter", "20")  

>>> mc.incr("counter")

21

@decr(key,delta=1)

自减变量减去delta,默认减1

2._set方法

很多方法内部都调用了_set方法,其源码如下:

   def _set(self, cmd, key, val, time, min_compress_len = 0):
          self.check_key(key)
          server, key = self._get_server(key)
          if not server:
              return 0
  
          self._statlog(cmd)
  
          store_info = self._val_to_store_info(val, min_compress_len)
          if not store_info: return(0)
  
          if cmd == 'cas':
              if key not in self.cas_ids:
                  return self._set('set', key, val, time, min_compress_len)
              fullcmd = "%s %s %d %d %d %d\r\n%s" % (
                      cmd, key, store_info[0], time, store_info[1],
                      self.cas_ids[key], store_info[2])
          else:
              fullcmd = "%s %s %d %d %d\r\n%s" % (
                      cmd, key, store_info[0], time, store_info[1], store_info[2])
  
          try:
              server.send_cmd(fullcmd)
              return(server.expect("STORED") == "STORED")
          except socket.error, msg:
              if isinstance(msg, tuple): msg = msg[1]
              server.mark_dead(msg)
          return 0

注: memcached 的客户端使用TCP链接与服务器通讯, 一个运行中的memcached服务器监视一些端口, 客户端连接这些端口,发送命令到服务器,读取回应,最后关闭连接

 

分享到:
评论

相关推荐

    Python库 | tencentcloud-sdk-python-memcached-3.0.335.tar.gz

    总结,tencentcloud-sdk-python-memcached是腾讯云为Python开发者提供的一套高效、易用的Memcached服务管理工具,它简化了与云端Memcached服务的交互过程,提升了开发效率。结合Python的灵活性和腾讯云的强大服务,...

    PyPI 官网下载 | tencentcloud-sdk-python-memcached-3.0.315.tar.gz

    总结来说,"tencentcloud-sdk-python-memcached-3.0.315"为Python开发者提供了与腾讯云Memcached服务交互的便利工具,不仅简化了开发过程,还增强了应用的性能和稳定性。通过学习和熟练掌握这款SDK,开发者可以充分...

    Python-xTAS是基于Celery的分布式文本分析套件

    总结来说,Python-xTAS是一个强大的工具,结合了Celery的分布式能力与NLP的专业知识,为大规模文本分析提供了高效解决方案。用户可以通过深入研究xTAS的源码和文档,了解其工作原理,并根据自身需求进行定制,从而在...

    Python-markbj是一个开源的知识分享平台

    总结来说,Python-markbj是一个用Python开发的知识分享平台,它利用Python的灵活性和丰富的生态系统构建了一个内容管理系统,支持用户发布、分享和获取知识。通过开源和社区协作,这个项目持续进化,为用户提供了...

    Memcached使用--使用

    总结,Memcached作为一个高效的内存缓存系统,对于提升Web应用性能有着显著作用。了解并熟练掌握其原理、配置、使用及优化,能有效改善系统的响应速度和整体性能。在实际项目中,应根据业务特点灵活运用,并结合其他...

    memcached-1.5.4

    - `memcached`常与Web开发框架(如PHP、Python、Ruby等)结合使用,提供数据缓存功能。 - 也可以与NoSQL数据库如Redis、MongoDB等搭配,作为它们的缓存层,进一步提升性能。 总结,`memcached-1.5.4`是实现高效...

    memcached客户端

    总结来说,Memcached客户端是连接应用程序与Memcached服务器的关键,选择合适的客户端可以优化性能、简化开发流程并提高系统的可维护性。开发者应当根据项目需求和所使用的编程语言,仔细评估并选择合适的客户端库。

    Python-所有ApolloClient20cache实现的简单持久化

    总结起来,"Python-所有ApolloClient20cache实现的简单持久化"涉及到Python在分布式配置管理中的应用,特别是如何通过内存缓存和磁盘持久化相结合的方式来保证配置信息的快速访问和重启后的恢复。了解这些概念和实现...

    Python-csssdbpycssdbpy用Cython编写的SSDB客户端

    在Python项目中使用`csssdbpy`,首先需要安装这个库,通常可以通过`pip`进行: ```bash pip install csssdbpy ``` 安装完成后,可以像使用其他Python库一样导入并初始化SSDB连接: ```python from csssdbpy ...

    twisted-memcached:扭曲的 memcached 协议

    总结来说,Twisted-memcached是Python开发者手中的一把利器,它提供了对memcached二进制协议的高效实现,结合了Twisted的异步能力,使得在Python环境中处理memcached任务变得更加便捷和高效。通过深入理解和熟练运用...

    memcached-1.2.1 -win32以及安装使用方法

    在本文中,我们将深入探讨Memcached的基本概念、工作原理,以及如何在Windows环境下安装和使用。 ### Memcached的基本概念 Memcached的设计目标是提供一个轻量级、高性能的缓存服务,它通过在内存中存储数据,减少...

    Python-minicachePython轻量级Cache工具

    **Python-minicache:...总结来说,`minicache`是一个方便易用的Python缓存库,适合快速实现简单缓存需求,尤其是对于小型项目或测试环境。通过理解并熟练运用其特性,开发者可以有效地优化代码性能,提升用户体验。

    memcached-1.5.11.tar.gz

    总结,Memcached 1.5.11版作为一款轻量级的缓存系统,以其高效、易用的特点在众多项目中得到了广泛应用。通过深入理解其工作机制和优化策略,开发者能够更好地利用这一工具提升系统的性能。同时,根据实际业务需求,...

    memcached连接demo

    使用`python-memcached`库,首先需要安装:`pip install python-memcached`。然后,你可以创建一个客户端实例并执行基本操作: ```python import memcache mc = memcache.Client(['127.0.0.1:11211'], debug=0) ...

    memcached linux windows 安装 使用 缓存 集群

    类似于Windows,Linux下的客户端使用也涉及连接到特定的IP和端口,通过各种语言的客户端库进行操作,如Python的`python-memcached`库。 【Memcached集群】: 为了提高可用性和扩展性,Memcached可以部署为集群。...

    Memcached-1.2.6

    总结,Memcached-1.2.6是一个强大的工具,通过高效地缓存数据,可以显著提高动态Web应用的性能。了解其工作原理和最佳实践,能够帮助开发者在实际项目中更好地利用这一技术,为用户提供更流畅的体验。

    memcached 缓存图片

    总结起来,通过使用Memcached缓存图片,我们可以提高网站的响应速度,减轻服务器负载,尤其是在高并发环境下。但需要注意的是,Memcached并非万能解决方案,对于需要长期存储或频繁更新的数据,可能需要结合其他存储...

    memcached-1.2.6-win32-bin.zip

    掌握其工作原理和使用方法,能帮助开发者更好地利用缓存技术优化系统性能,解决高并发场景下的性能瓶颈问题。通过"memcached-1.2.6-win32-bin.zip"这个压缩包,我们可以快速地在Windows环境中搭建并实践Memcached,...

    memcached-1.5.9

    **标题与描述解析** 标题"memcached-1.5.9"指的是memcached软件...总结,memcached-1.5.9和Magent(可能是拼写错误)的组合,为用户提供了高性能的内存缓存服务和集群管理工具,适用于处理大量数据访问的Web应用环境。

    memcached-1.5.14.tar.gz

    总结,Memcached 1.5.14 是一个高效、轻量级的缓存解决方案,通过这个压缩包,我们可以获取到源代码并部署在自己的系统上,提升Web应用的性能。正确理解和运用其工作原理及优化策略,将有助于构建更快速、更稳定的...

Global site tag (gtag.js) - Google Analytics