Memcached

Memcached

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。
Memcached是一种基于内存的key-value存储。

win安装

http://static.runoob.com/download/memcached-1.4.5-amd64.zip

win运行(将memcache添加为定时任务):
schtasks /create /sc onstart /tn memcached /tr "'D:\memcached-amd64\memcached.exe' -m 512"

win停止:
schtasks /delete /tn memcached


linux安装

yum -y install libevent libevent-devel
wget http://memcached.org/files/memcached-1.5.20.tar.gz
tar -xvf memcached-1.5.20.tar.gz
cd memcached-1.5.20
./configure --prefix=/usr/local/memcached
make
make install

linux运行:
/usr/local/memcached/bin/memcached -m 64m -d

memcached命令详解

bin/memcached -h 帮助
-p :指定监听端口,默认11211
-m :指定分配给memcache多少内存,单位是MB.
-l :监听的服务器IP地址,可以有多个地址
-c :最大运行的并发连接数,默认是1024
-d :启动一个守护进程
-u :指定运行memcache的用户
-P :指定保存memcache的pid文件

连接

使用telnet命令
telnet ip port
telnet 127.0.0.1 11211

增删改查

增加数据

set命令:用来添加数据key->value 如果这个key存在,那么就会替换值,否则添加数据.
设置的字符长度必须真实,和值一样的字符相等
set key名称 flag 过期时间(秒) 字符的长度
value
成功会打印STORED , 错误会打印 ERROR
例子:
> set username 0 60 7
> ktianc
> STORED

add命令:同set使用方式,不同的是如果添加的key存在,那么就会添加失败,报NOT STORED

查询数据

get命令 :根据key来获取一个数据
get key名称
例子:
get username

删除数据

delete命令:根据key来删除一个键值
delete key名称
例子:
delete username

flush_all命令:清空memcached中所有的数据。

更新数据

incr命令:相加操作,值必须是数字类
incr key名称 数字值
例子:
incr age 2

decr命令:相减操作,值必须是数字类型
decr key名称 数字值
例子:
decr age 2


查看状态

stats命令: 查看memcached状态

--------------------------------------------------------------------------

python 连接 memcached

mc = memcached.Client(["127.0.0.1:11211"],debug=True)

配置集群连接
mc = memcache.Client([('1.1.1.1:12000', 1), ('1.1.1.2:12000', 2), ('1.1.1.3:12000', 1)], debug=True)
1 2 1 为权重

使用
增加数据
mc.set("key","value",time=60) #默认保存时间为300秒
mc.add('key', 'value',time=60) #对已经存在的key重复添加会报错:MemCached: while expecting 'STORED', got unexpected response 'NOT_STORED'

查询数据
key = mc.get("key")   # 没有值显示None
key = get_multi(["key1", "key2", "key3"])             #获取多个键值对

删除数据
mc.delete("key")
mc.delete_multi(['key1', 'key2']) #一次删除多个键值

更新数据:
mc.replace('key','value')  #如果key不存在则报错
mc.append('key', 'value')  #修改指定key值,在后面追加内容
mc.prepend('key', 'value') #修改指定key值,在前面插入内容

计算:
mc.incr('key', 10)  #将key的值增加10  默认加1
mc.decr('key', 10)  #将key的值减10,默认为1


----------------------------------------------------------------------------

django 使用 memcached

settings.py配置
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
        'KEY_FUNCTION':lambda key,key_prefix,version:'django:' + key
    }
}

使用

需要先导入cache对象来操作memcached
from django.core.cache import cache

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值