Memcached--->分布式的缓存服务器
1.特点
a.内存存储
速度快,内存要求高,cpu要求低
部署Memcached服务端的时候往往会和内存要求低(内存低消耗),cpu要求高的应用部署在一起
b.集中式的缓存
Memcached必须把客户端包含在一起,我们才认为是分布式的。
对于每个Memcached实例都是独立的,集中式缓存,
存在单点问题 (实际应用中我们可能需要自己去解决单点问题)
c.分布式扩展
注意的问题:一致性hash问题,在搭建集群的时候我们去解决这个问题
d.Socket通讯
需要注意传输内容大小和序列化的问题。
底层做的是NIO(多路复用的IO)
序列化的性能问题
e.特殊的内存分配机制
支持的最大对象是1M(关于内存到底如何分配,在后续章节会详细讲解)
f.缓存机制比较简单
两次hash算法,第一次定位实例(机器down了,扩展机器时防止数据丢失),第二次进行hashMap操作
g.客户端非常重要
客户端包含在一起才是分布式的
客户端只要支持socket通讯即可
h.一些应用点
小对象的缓存、小的静态资源的缓存、sql结果的缓存(数据库的前端缓存)
session的缓存(msm--->memcached session manage)
ESB的消息缓存 等等
安装、启动 (个人安装在/usr/local/目录下 )
1.tar -xzvf 文件.tar.gz
2.安装libevent
进入目录
./configure(我的出错了,原因是没有安装gcc,解决方法: yum install gcc(保证你的linux能联网) )
make
make install
3.安装Memcached
加压 进入目录
./configure
make
make install
4.测试是否安装成功
./memcached -h
5.启动服务和连接
./memcached -d -m512 -p11211 -uroot
telnet localhost 11211 (如没有安装telnet root用户下执行 yum -y install telnet 安装即可)
启动参数
启动方式
-d ---->以守护程序方式运行
-uroot 指定用户 -p11211指定端口 memcached的默认端口就是11211
内存设置
-m 1024
-M 内存不够禁止LRU
-------------------------------------------
-n
-f 1.25 增长因子
-l 这三个启动参数将来在内存分配内存优化等方面有重要作用,讲内存分配的时候会详细的讲解
-------------------------------------
连接设置
-p TCP端口
-U UDP端口
并发设置参数
-c 1024 最大并发连接数
-t 4 线程数
将来这些选项都可以放入到启动参数中。
常用的一些命令
set liu 32 0 4 长度一定要正确
java
STORED
add 只能添加不存在的key
replace只能替换已经存在的key
get/gets
gets会带有版本