python memcache模块学习

最近在研究memcached,同时也在学习python,于是就想通过python来管理memcached。

首先需要安装python-memcached-1.48.tar.gz,具体安装步骤不做描述,很简单的。自己研究了一下它的用法,总结了一些笔记,如果有不对的地方,欢迎大家指正。

 

正文:

import memcache #导入memcache模块
连接memcached服务器

mc=memcache.Client([‘127.0.0.1:11211’],debug=1)
设置key
>>> mc.set(‘aaa’,’abcdefg’)

True
读取key
>>> mc.get(‘aaa’)

‘abcdefg’
value的自增和自减 (value最小为0)
>>> mc.set(‘key’,1)

True

>>> mc.incr(‘key’) #默认自增和自减的值为1

2

>>> mc.get(‘key’)

2

>>> mc.incr(‘key’,2) #设置增加2

4

>>> mc.decr(‘key’,3) #设置减3

1

>>> mc.get(‘key’)

1

>>> mc.set(‘k’,’2’) #注意,value为字符串

True

>>> mc.incr(‘k’)

3

>>> mc.get(‘k’)

‘3’

>>> mc.set(‘k’,’a’) #注意,value为字符串,但是和上面的区分

True

>>> mc.incr(‘k’)

1

>>> mc.get(‘k’)

‘1’
删除key
>>> mc.delete(‘k’)

1

>>> mc.get(‘k’)
 

添加key(只有在key不存在的情况下才保存,否则出错。但是set不同)

>>> mc.add(‘k’,’abc’)

True

>>> mc.get(‘k’)

‘abc’

>>> mc.add(‘k’,’ccc’)

MemCached: while expecting ‘STORED’, got unexpected response ‘NOT_STORED’

False

>>> mc.get(‘k’)

‘abc’

>>> mc.set(‘k’,’ccc’)

True

>>> mc.get(‘k’)

‘ccc’
追加value (只有在key存在的情况下才保存,否则出错。和add区分)
>>> mc.get(‘k’)

‘ccc’

>>> mc.append(‘k’,’xxx’)

True

>>> mc.append(‘ax’,’aa’)

MemCached: while expecting ‘STORED’, got unexpected response ‘NOT_STORED’

False
更改value (如果key不存在的话,添加key和value)
>>> mc.get(‘k’)

‘xc’

>>> mc.cas(‘k’,’xx’)

True

>>> mc.get(‘k’)

‘xx’

>>> mc.get(‘k1’)

>>> mc.cas(‘k1’,’new’)

True

>>> mc.get(‘k1’)

‘new’
替换value (如果key不存在的话,就报错。注意和cas区分)
>>> mc.replace(‘k’,’eeee’)

MemCached: while expecting ‘STORED’, got unexpected response ‘NOT_STORED’

False

>>> mc.get(‘k’)

>>> mc.cas(‘k’,’aa’)

True

>>> mc.replace(‘k’,’eeee’)

True

>>> mc.get(‘k’)

‘eeee’
读取多个key的value
>>> mc.get_multi([‘k’,’k1’,’a’,’aa’])

{‘k’: 0, ‘k1’: ‘new’}
删除多个key (如果有不存在的key会出错)
>>> mc.get(‘k’)

‘aa’

>>> mc.get(‘kk’)

‘c’

>>> mc.get(‘k1’) # k1不存在

>>> mc.delete_multi([‘k’,’kk’,’k1’])

MemCached: while expecting ‘DELETED’, got unexpected response ‘NOT_FOUND’

1

>>> mc.get(‘k’)

>>> mc.get(‘kk’)
获取服务器的信息

 

>>> mc.get_stats()

[(‘127.0.0.1:11211 (1)’, {‘pid’: ‘25030’, ‘total_items’: ‘24’, ‘uptime’: ‘152005’, ‘listen_disabled_num’: ‘0’, ‘version’: ‘1.2.8’, ‘limit_maxbytes’: ‘67108864’, ‘repcached_qi_free’: ‘8190’, ‘rusage_user’: ‘0.492925’, ‘bytes_read’: ‘4828’, ‘accepting_conns’: ‘1’, ‘rusage_system’: ‘3.883409’, ‘repcached_version’: ‘2.2’, ‘cmd_get’: ‘61’, ‘curr_connections’: ‘5’, ‘replication’: ‘MASTER’, ‘threads’: ‘2’, ‘total_connections’: ‘388’, ‘cmd_set’: ‘27’, ‘curr_items’: ‘6’, ‘get_misses’: ‘18’, ‘cmd_flush’: ‘0’, ‘evictions’: ‘0’, ‘bytes’: ‘328’, ‘connection_structures’: ‘8’, ‘bytes_written’: ‘263832’, ‘time’: ‘1341541113’, ‘pointer_size’: ‘32’, ‘get_hits’: ‘43’})]