Memcached简介(一)
一,memcached是什么?
memcached是一款开源的,高性能的,分布式的内存对象缓存系统
二,Memcached能干什么?
最主要的功能:减少数据库访问次数,减轻数据库的负载,提高系统性能
三,Memcached的特点:
(1)键值对存储
(2)协议简单(基于文本行)
(3)基于libevent的时间处理,无阻塞通信,对内存读写速度非常快
(4)基于客户端的分布式,服务端多个Memcached之间不互相通信
(5)服务端以守护进程运行,客户端可以用任何语言来编写
四,安装
参照:http://www.runoob.com/memcached/window-install-memcached.html
五,基本使用:
-d 启动一个守护进程
-m 分配的使用内存数量
-u 运行用户
-l 服务器ip地址
-p 端口
-c 并发连接数
-P 保存Memached进程的pid文件
-f 块大小增长因子 默认是 1.25
-n 最小分配空间 key+value+flags 默认是 48byte
-I 每个slab page的大小
-v/-vv 显示工作时的各种参数
六,基本的工作原理
(1)Memcached是以守护进程的方式运行于一个或者多个服务器,随时等待客户端的链接,通过启动memcached服务器端,配置相应的监听IP、端口内存大小等参数,客户端可通过指定的服务器端IP,将数据以key-value的方式存储。
(2)客户端存取数据时,首先参考节点列表计算出key的哈希值,进而选中一个节点,客户端将请求发送给选中的节点,然后memcached节点通过一个内部的哈希算法,进行真正的数据存取。
(3)服务器客户端通讯并不使用复杂的xml等格式,而是使用简单的基于文本行的协议。因此,通过telnet也能在memcached上保存数据,取得数据
七,操作命令
(1) 第一行: key flags expirationTime bytes
add key1 1 0 2
flags: 一个32位的标志值,客户端使用他存储关于键值对额外的信息
expiration time:表示缓存中保存键值对的时长(以秒为单位,0表示永远)
bytes: 表示缓存中存储的字节数
第二行 :value
12
出现stored 表示存储成功
(2)noreply 以避免在处理交互命令的时候,等待服务端的返回
(3)写入命令: set add replace append cas
set : 如果键已经存在,那么值将会覆盖
add:仅当缓存中不存在键时,add命令才会向缓存中添加一个键值对,如果缓存中已经存在,之前的值仍然保持不变。
replace : 仅当键已经存在时,replace才会替换到原来的值
append: 在现有缓存数据后面新增数据
preappend: 在现有缓存数据前面新增数据
cas(check and set):检查和更新,只有从你读取数据后,别人没有更新过这个数据才能正确保存。主要是版本控制。
(4)get 获取数据 gets 获取数据 + 版本号
(5)deleted key 删除数据
(6)incr / decr key 命令: 数字形式的字符串进行递增,递减。注意不可能出现负数。