16 python --memcached

简介

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")
View Code
原文地址:https://www.cnblogs.com/the-way-to-bifk/p/8001327.html