环境:ubuntun
语言:python
IDE:pycharm
安装memcached:
sudo apt-get install memcached
检测安装是否成功:
输入memcached 默认就启动了,什么也不提示,如果没成功有错误提示
安装 python-memcached:
http://www.tummy.com/Community/software/python-memcached/
直接下载安装,略
查看相关命令:
memcached -help
带参数启动 memcached:
memcached -m 10 -p 12000
-m: 使用内存大小
-p: TCP port number to listen on (default: 11211) 使用的端口号,默认使用11211
主要方法如下:
set(key,val,time=0,min_compress_len=0)
设置 key value,time用于设置超时时间,min_compress_len则用于设置zlib压缩(注:zlib是提供数据压缩用的函式库
set_multi(mapping,time=0,key_prefix='',min_compress_len=0)
mapping放置的是一个字典,key_prefix是key的前缀
mc.set_multi({'k1':1,'k2':2},key_prefix='pfx_')
print mc.get('pfx_k1')
1
add(key,val,time=0,min_compress_len=0)
添加一个键值对,内部调用_set()方法
replace(key,val,time=0,min_compress_len=0)
替换value,内部调用_set()方法 ,就跟python的字符串replace一样
get(key)
根据key去获取value,出错返回None
get_multi(keys,key_prefix='')
获取多个key的值,返回的是字典。keys为key的列表
mc.set_multi({'k1':1,'k2':2},key_prefix='pfx_')
print mc.get_multi(['pfx_k1','pfx_k2'])
{'k2': 2, 'k1': 1}
delete(key,time=0)
删除某个key。time的单位为秒,如果返回非0则代表成功
incr(key,delta=1)
获取一个key的值,然后加1,(默认是1,可以自己设置)必须得是能相加的,字符串和数字就不能加
print mc.incr('pfx_k1')
2
decr(key,delta=1)
自减变量减去delta,默认减1
这个就同上,没什么好说的
利用python打出所有的方法
mc = memcache.Client(['127.0.0.1:12000'],debug=0)
mc.set_multi({'k3':3,'k5':5},key_prefix='pfx_')
for attr in dir(mc):
print attr
MemcachedKeyCharacterError
MemcachedKeyError
MemcachedKeyLengthError
MemcachedKeyNoneError
MemcachedKeyTypeError
MemcachedStringEncodingError
_FLAG_COMPRESSED
_FLAG_INTEGER
_FLAG_LONG
_FLAG_PICKLE
_SERVER_RETRIES
__class__
__delattr__
__dict__
__doc__
__format__
__getattribute__
__hash__
__init__
__module__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__sizeof__
__str__
__subclasshook__
_expect_cas_value
_expectvalue
_get
_get_server
_incrdecr
_init_buckets
_map_and_prefix_keys
_recv_value
_set
_statlog
_val_to_store_info
add
append
buckets
cache_cas
cas
cas_ids
check_key
dead_retry
debug
debuglog
decr
delete
delete_multi
disconnect_all
do_check_key
flush_all
flush_on_reconnect
forget_dead_hosts
get
get_multi
get_slabs
get_stats
gets
incr
persistent_id
persistent_load
pickleProtocol
pickler
picklerIsKeyword
prepend
replace
reset_cas
server_max_key_length
server_max_value_length
servers
set
set_multi
set_servers
socket_timeout
stats
unpickler
查看具体一个方法的使用
help(mc.get)
Help on method get in module memcache:
get(self, key) method of memcache.Client instance
Retrieves a key from the memcache.
@return: The value or None.
以上其实你直接可以查看源码,总共不到1500,去掉注释,估计就剩下1000行