最近在研究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’})]