一、什么是memcached
Memcached
是一个高性能的分布式的内存对象缓存系统,它通过在内存里维护一个统一的巨大的散列表来实现高速的IO操作。memcached
能存储各种各样的数据,包括图像、视频、文件等二进制数据。
适合使用memcached
的情况:存储验证码、登录session
等非至关重要的数据。
二、安装与启动memcached
- windows:
安装:memcached.exe -d install
启动:memcached.exe -d start
- ubuntu:
安装依赖:sudo apt-get install libevent-dev
安装:sudo apt install memcached
启动:/usr/local/memcached/bin/memcached -d start
- 启动参数:
①-d
:让 memcached 在后台运行。
②-m
:指定使用的内存,以M为单位,默认为64M。
③-u
:指定运行的用户,如果当前用户为root,需要添加此参数。
④-p
:指定允许的端口,默认为11211
。
⑤-l
:其他机器能够通过本机的哪个ip
连接数据库。若想让别的机器连接,则应该指定为0.0.0.0
。
若想使用以上参数来配置信息,则不能使用
service memcached start
来启动服务。
三、基本操作
通过telnet
连接memcached
,命令为telnet ip地址 [11211]
。
1.添加数据
1.set
:
- 语法:
set key flag(是否压缩) timeout value_length value
- 示例:
set username 0 60 7 wjiaman
2.add
:
-
语法:
add key flag(0) timeout value_length value
-
示例:
add username 0 60 7 wjiaman
set
与add
的区别:set
会覆盖原有数据,而add
添加已存在的键时会添加失败。
2.获取数据
1.get
:
-
语法:
get key
-
示例:
get username
3.删除数据
1.delete
:
- 语法:
delete key
- 示例:
delete username
2.flush_all
:删除当前所有数据。
4. 递增、递减数据
只能用于数值类型。
1.incr
:
- 语法:
incr key [num](默认为1)
- 示例:
incr slary 1000
2.decr
:
- 语法:
decr key [num]
- 示例:
decr age 2
5.查看状态
- 语法:
stats
。
四、通过python操作
使用与memcached
指令同名的借口。
-
安装 python 驱动:
pip install python-memcached
; -
建立连接:
import memcache mc = memcache.Client(['127.0.0.1:11211'],debug=True]) # 若元组中指定了多台服务器,则使用分布式存储
-
设置数据:
mc.set('username','wjiaman',time=60*5) mc.set_multi({'email':'xxx@qq.com','telphone':'111111'},time=60*5)
-
获取数据:
mc.delete('email')
-
删除数据:
mc.incr('read_count')
-
自增:
mc.incr('read_count',[num])
-
自减:
mc.decr('read_count',[num])