memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用。
ubuntu16.0.4下memcached的安装
linux系统安装memcached首先要安装libevent库
1 | sudo apt-get install libevent-deve |
若linux系统为centos则命令为
linux系统安装memcached首先要安装libevent库
1 | yum install libevent libevent-deve |
memcached的连接与关闭
启动memcached连接
找到memcached的安装目录,自动安装memcached在/usr/local/bin/memcached路径下
linux系统安装memcached首先要安装libevent库
1 | memcached -u root -d -m 128m -p 11211 |
连接memcached语法为:telnet HOST PORT
本实例的memcached服务运行的主机为127.0.0.1(本机),端口为11211
linux系统安装memcached首先要安装libevent库
1 | telnet 127.0.0.1 11211 |
连接成功如下图所示:
退出命令
linux系统安装memcached首先要安装libevent库
1 | quit |
关闭memcached
与windows直接输入memcached.exe -d stop关闭memcached不同
linux需先知道memcached的进程号,再将其杀死
查看进程号
linux系统安装memcached首先要安装libevent库
1 | stats 或者 ps -ef|grep memcached |
知道了memcached对应的进程号pid后,使用kill命令杀死进程即可。
注意:杀死进程前必须quit退出连接
linux系统安装memcached首先要安装libevent库
1 | kill 5070 |
杀死进城后再次连接memcached失败,说明memcached已经被关闭。
memcached的命令
存储命令
set
set用于将value存储于key中,若set的key已经存在,该命令可以更新key所对应的原来的数据。语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | set key flag exptime bytes [noreply] |
key:键值对中的key,用于查找缓存值
flag:可以包含键值对的整型参数,客户机使用它存储关于键值对的额外信息
exptime:再缓存中保存键值对的时间长度,以秒为单位,0表示永远
bytes:在缓存中存储的字节数
noreply:可选参数,该参数告知服务器不需要返回数据
value:存储的值,始终位于第二行
add
add用于将value存储在指定的key中,如果add的key已经存在,则不会更新数据,与之前的值仍然保持相同,会得到NOT_STORED的响应,但是过期的key会更新。
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | add key flags exptime bytes [noreply] |
replace
replace用于替换已经存在的key的value,如果可以不存在,则替换失败,并且得到NOT_STORED的响应
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | replace key flags exptime bytes [noreply] |
append
append用于向已经存在key的value后面追加数据
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | append key flags exptime bytes [noreply] |
prepend
prepend命令用于向已经存在key的value前面追加数据
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | prepend key flags exptime bytes [noreply] |
cas
cas用于执行一个“检查并设置”的操作,它仅在当前客户端最后一次取值后,该key对应的值没有被其他客户端修改的情况下才能够将值写入。检查是通过cas_token参数进行的,这个参数是memcached指定给已经存在的元素的一个唯一的64位值。
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | cas key flags exptime bytes unique_cas_token [noreply] |
unique_cas_token是通过gets命令获取的一个唯一的64位值
查找命令
get
get用于获取存储在key中的value,如果key不存在,则返回空。若获取多个key的value,则使用空格将其隔开即可。
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | get key |
gets
gets用于获取CAS令牌存的value,如果key不存在,则返回空。若获取多个key的value,则使用空格将其隔开即可。
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | gets key |
delete
delete命令用于删除已经存在的key。
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | delete key [noreply] |
incr/decr
incr和decr用于对已经存在的key的数字进行自增或自减操作。但是惭怍的数据必须是十进制的32位无符号整数,若key不存在,返回NOT_FOUND,若键的值不为数字,则返回CLIENT_ERROR,其他错误返回ERROR。
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | incr key increment_values [noreply] |
increment_values为增加的数值
decrement_values为减少的数值
flush_all
flush_all用于清理缓存中的所有的键值对,该命令提供了一个可选参数time,用于在制定的时间后执行清理缓存操作。
语法格式如下:
linux系统安装memcached首先要安装libevent库
1 | flush_all [time] [noreply] |