简介
Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值的hashmap。其守护进程(daemon)是用C语言写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
安装memecache
cd /usr/local/src wget http://memcached.org/latest tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x.x ./configure –prefix=/usr/local/memcached&& make && make test && make install
报错处理:找不到libevent
wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz tar zxvf libevent-2.1.8-stable.tar.gz -C /usr/local/src/ cd /usr/local/src/ ./configure --prefix=/usr/local/ make && make install 编译时指定libevent ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/ 或yum install –y libevent*
启动memcache
memcached -d -m 10 -u root -l 192.168.100.83 -p 12000 -c 256 -P /export/servers/memcache/logs/memcache.pid
-p 指定端口号(默认11211)
-m 指定最大使用内存大小(默认64MB)
-t 线程数(默认4)
-l 连接的IP地址, 默认是本机
-d 以后台守护进程的方式启动
-c 最大同时连接数,默认是1024
-P 制定memecache的pid文件
-h 打印帮助信息
检查memcache是否启动
Memcache常用命令
存储命令: set/add/replace/append/prepend/cas
获取命令: get/gets
其他命令: delete/stats.
import memcache mc=memcache.Client([("192.168.100.83:12000",1),("192.168.100.83:12001",2)],debug=True) mc.set("k1","v1") print (mc.get("k1"))

import memcache mc=memcache.Client(["192.168.100.83:12001"],debug=True) mc.add("k1","v1") #add(key,value) print (mc.get("k1")) # print (dir(mc)) #replace mc.replace("k1",'hello world') print mc.get("k1") #set(key,value) mc.set("k2","v2") print mc.get("k2") mc.set("k2","hello2") print mc.get("k2") # set和add的区别 #set = add + replace # 如果这个key值存在,add就会报错,set不会报错,set会进行重新赋值并覆盖 # set_multi(dict) 一次设置多个key:value # get_multi(list) 一次获取到多个key,每个key要以list的形式作为参数传入 返回类型为dict # get(key) 获得该key对应的value值 # mc.set_multi({"k100":"v100","k101":"v101","k102":"v102"}) # print mc.get_multi(["k100","k101"]) mc.set_multi({"test1":"v100","test2":"v101","test3":"v102"}) print mc.get_multi(['test1']) mc.delete('test1') mc.delete_multi(['test2','test3']) print mc.get_multi(["test1","test2","test3"]) mc.set_multi({"test1":"v100","test2":"v101","test3":"v102"}) mc.append("test1","ling") #在后面追加值 print mc.get("test1") mc.prepend("test2","hello") #在前面加入值 print mc.get("test2") # incr 和 decr # incr 默认自增1 第二个参数为自增的步长n # decr 默认自减1 第二个参数为自减的步长n mc.set("shop",1000) #自增初始值1000,默认自增1 mc.incr("shop") print mc.get("shop") mc.incr("shop",100) #自增步长为100 print mc.get("shop") mc.decr("shop") #自减 print mc.get("shop") mc.decr("shop",500) #自减步长为500 print mc.get("shop")