最近,想看看开源的东西,正好在网上看到了memcached这个服务器,就简单学了学。做个笔记!
1.memcached 介绍
memcached我原本以为是一款数据库软件,但详细了解才发现,准确的是一款服务器软件,近年来memcached总被说被淘汰了,被redis赶超了,但我认为它们各自有自 己的优势,还是值得去了解一下的。
memcached是一款自由&&开放源码,高性能,分布式内存对象缓存系统,老牌的NoSQL应用,一般的使用目的是,通过缓存数据库查询结果,减少数据库的访问次数,从而提高动态Web应用的速度,提高可扩展性。
NoSQL:(not only sql),翻译成大白话就是不仅仅是关系型数据库。
memocached的显著特点是:它基于Key-value键值对存储;基于键值对存储的还有redis;同时还有基于文档存储的像:mongodb;
2.memchached的启动
(1)在Windows下启动
我们可以在官网上下载最新版的memcached ,同时放在一个文件夹下(因为这个软件很小),所以不用安装了。打开dos窗口,切换到存放软件的文件夹,输入
>memcached.exe -m 64 -p 11211 -vvv 即可启动memcched。这里的参数不一一介绍了,可以通过-help选项查询。也是比较简单的。
一般我们通过telnet对memcached进行连接。我们要打开windows下的telnet.在控制面板里找到打开或关闭windows功能选项,勾选出telnet服务器和telnet客户端选项,点击确认即可。<memcached客户端与服务器的连接基于文本协议,不是二进制协议>
打开telnet;
>telnet (ip) (端口号)
我们可以按下" Ctrl + ] ", 查看回显功能,回车查看;
(2)linux下启动
在linux下启动同样很方便。在官网上下载最新版的.tar.gz文件。解压,编译连接,运行即可。就是我们平时的./configure --prefix=() && make &&make install
之后用上边的命令运行即可。(这里不过多介绍了)。
3.memcached 命令介绍
(1)add 命令
语法:add key flag expire length
key: 就是我们说的key-value 里的value,其实就是给value取一个唯一的名字;
flag: 一个整数,表示一种规则。平时我们就取0;
expire:表示有效期(存储在内存多少时间,一般按秒计算),若为0,表示不自动失效,会保持30天,如果不关机的情况下;
length: 缓存长度(字节为单位);
例如:add book 0 0 5
>hello
STORED
(2)get 命令 <查找>
语法:get key
warning: 用add时,只有key不存在时才能建立;但对于replace,只有key存在时才能修改!
(3)replace 命令 <修改>
参数和add命令一样,其实就是修改value
(4) delete 命令
语法:delete key [数字] (其中这个数字表示需要等待n秒后才可以再运用此键,因为刚删除,需要让页面缓存代谢完毕)
(5) set 命令 <等同于add和repalce的结合体>
如果服务器中没有这个键,则加上去;
如果服务器有这个键,则可修改;
set的语法和add语法一样;
(6) incr <increase,增长>
语法:incr key num (其中num 表示增加的数量)
(7) decr <decrease,减少>
语法:decr key num
注意:incr和decr 需要把值理解为无符号书来理解,理论上num的值得范围在(0, 2^32 - 1);
(8)stats <统计>
查看内存的信息等
(9) flush_all <清空所有的存储对象>
注意这个命令慎用!