这是本文档旧的修订版!
memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为 mixi、 hatena、 Facebook、 Vox、LiveJournal等众多服务中 提高Web应用扩展性的重要因素。
许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。
这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。
在Ubuntu14.04上安装如下:
sudo apt-get install memcached
安装好,默认启动memcached,默认端口是11211
#启动脚本:-m指定内存单位M,-p指定端口,-u指定用户,-l指定memcached server的ip sudo /etc/init.d/memcached start -m 64 -p 11211 -u memcache -l 127.0.0.1 #关闭脚本 sudo /etc/init.d/memcached stop #连接memcached server gxx@iZ23goxo66aZ:~$ telnet localhost 11211 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. #退出memcached server quit Connection closed by foreign host. gxx@iZ23goxo66aZ:~$
存储命令的格式:
<command name> <key> <flags> <exptime> <bytes> <data block>
参数说明如下:
<command name> | set/add/replace |
---|---|
<key> | 查找关键字 |
<flags> | 客户机使用它存储关于键值对的额外信息 |
<exptime> | 该数据的存活时间,0表示永远 |
<bytes> | 存储字节数 |
<data block> | 存储的数据块(可直接理解为key-value结构中的value) |
gxx@iZ23goxo66aZ:~$ telnet localhost 11211 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. set name 0 0 3 #set设置name,不管是否存在,长度为3字节 gxx STORED get name #get获取name VALUE name 0 3 gxx END add name 0 0 3 #add添加name,已存在,添加失败 lqy NOT_STORED add pwd 0 0 6 #add添加pwd,不存在,添加成功 123456 STORED replace notexist 0 0 3 #replace替换notexist,不存在,替换失败 123 NOT_STORED replace pwd 0 0 3 #replace替换pwd,已存在,替换成功 123 STORED get pwd #get获取pwd VALUE pwd 0 3 123 END delete pwd #delete删除pwd,删除成功 DELETED get pwd #get获取pwd,不存在,直接返回END END get name #get获取name VALUE name 0 3 gxx END gets name #gets获取name,后面多返回一个类似版本号的数字,当name值改变时,这个多返回的数字也会改变 VALUE name 0 3 12 gxx END