python的memcache

本文介绍了如何在Python中使用python-memcached库连接和操作memcached,包括安装、添加、替换、设置、删除、获取以及自增自减等基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装memcache

#源码安装memcached,依赖libevent
#需要提前安装:yum -y install libevent-devel

wget http://memcached.org/latest
tar -zxf memcached-1.5.7.tar.gz
cd memcached-1.5.7/
./configure && make &&  make install


#编译安装以后,启动memcached进程
memcached -d -m 10    -u root -l 127.0.0.1 -p 12000 -c 256 -P /tmp/memcached.pid

#memcached参数说明:
    -d :启动一个守护进程;
    -m :分配给Memcache使用的内存数量,单位是MB;
    -u :运行memcache的用户;
    -l :监听的服务器IP地址;
    -p :设置Memcache监听的端口,最好是1024以上的端口;
    -c :选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定;
    -P :设置保存Memcache的pid文件。

使用pip安装memcache的库
[root@shanwu memcached-1.5.7]# pip3  install  python-memcached
Collecting python-memcached
  Downloading https://files.pythonhosted.org/packages/f5/90/19d3908048f70c120ec66a39e61b92c253e834e6e895cd104ce5e46cbe53/python_memcached-1.59-py2.py3-none-any.whl
Collecting six>=1.4.0 (from python-memcached)
  Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Installing collected packages: six, python-memcached

使用python-memcached库连接memcached

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import memcache

mc = memcache.Client(['127.0.0.1:12000'], debug=True)
mc.set("foo", "bar")
ret = mc.get('foo')
print(ret)

#输出
#结果:
bar

上面例子我们通过调用memcache模块来实现对memcached进行存取数据,debug=True表示运行中出现错误时,显示错误信息,上线后移除该参数。
  • add:
    添加一条键值对,如果已经存在的key,重复执行add操作会报异常。
ret = mc.add('name','shan')
print(ret)

#输出

[root@shanwu python]# python3 me.py
True
  • replace:
    replace修改某个key的值,如果key不存在,则异常。
mc.replace('foo','999')
ret=mc.get('foo')
print(ret)

#输出
[root@shanwu python]# python3 me.py
999
  • set和set_multi:
    set :设置一个键值对,如果key不存在,则创建,如果key存在,则修改;
    set_multi:设置多个键值对,如果key不存在,则创建,如果key存在,则修改。
mc.set('key0','jack')
mc.set_multi({'key1':'val1','key2':'val2'})
ret=mc.get('key0')
ret1=mc.get('key1')
ret2=mc.get('key2')
print(ret)
print(ret1)
print(ret2)


#输出
[root@shanwu python]# python3 me.py
jack
val1
val2
  • delete和delete_multi:
    delete:在Memcached中删除指定的一个键值对;
    delete_multi:在Memcached中删除指定的多个键值对。
mc.delete('key0')
mc.delete_multi(['key1','key2'])
print(ret)
print(ret1)
print(ret2)

#输出
[root@shanwu python]# python3 me.py
Traceback (most recent call last):
  File "me.py", line 14, in <module>
    print(ret)
NameError: name 'ret' is not defined
  • get和get_multi:
    get : 获取一个键值对;
    get_multi:获取多个键值对。
    前面的例子里用到

  • append和prepend:
    append:修改指定key的值,在该值后面追加内容;
    prepend:修改指定key的值,在该值前面插入内容。

mc.set('k0','jack')
mc.set_multi({'k1':'val1','k2':'val2'})
mc.append('k1','after')
val1 = mc.get('k1')
print(val1)

mc.prepend('k1','brefore')
val2 = mc.get('k1')
print(val2)

#输出
val1after
breforeval1after
  • decr和incr:
    incr:自增,将Memcached中的某一个值增加N(N默认为1);
    decr:自减,将Memcached中的某一个值减少N(N默认为1)。
mc.set('k1','777')
#mc.incr('k1')        #778,默认自增1

mc.incr('k1',10)
val1 = mc.get('k1')
print(val1)

mc.decr('k1',20)
val2 = mc.get('k1')
print(val2)

#输出
[root@shanwu python]# python3 me.py
787
767
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值