一,Memcached概念
旁挂式memcached:高性能key/value数据缓存,旁挂式缓存
二,Memcached特点
1.协议简单
2.基于libevent事件处理,并发性能较好
3.基于内存完成数据存储 LRU算法
4.memcached互不通信的集群,分布式,一致性哈希,避免偏斜,使用虚拟节点
5.基于懒性管理法制,不一定删除,而是标识不可用
三,安装和使用
memcached 已经被整合进base源
[root@node3 ~]# yum install memcached -y
[root@node3 ~]# systemctl start memcached
#默认监听tcp和udp的11211端口
telnet 127.0.0.1 11211
四,常用命令
set
add
replace
get
delete
stats
五,memcached内存存储
image.pngslab allocation: 整理内存以进行复用 slab allocator
page:分配给slab用于再次分割为chunk的内存空间
chunk:用于缓存缓存对象的存储空间
slab class 特定大小的chunk组合而且的组
有一个对象来缓存,找一个能容纳下的chunk分配,使用率不一定为100%,利于内存的回收和整理
memcached -u memcached -v 可以来查看chunk的信息 -f可以来调整增长因子,永久生效,在/etc/sysconfig/memcached 中的options中加入 例如 -f 1.1
image.png
memcached-tool 查看stats
'#' slab class 的编号
Item_size Chunk大小
六,会话保持在memcached的实现 依赖sms来实现
sms 可以指明使用两个memcached ,自动主备模式
#准备所用jar
memcached-session-manager-tc8-1.8.1
msm-kryo-serializer-1.8.2
spymemcached-2.10.2
javolution-5.5.1
放在tomcat下面的lib中
分别在两个tomcat上的某host上定义一个用于测试的context容器,并在其中创建一个会话管理器,如下所示:
<Context path="/test" docBase="/usr/local/tomcat/webapps/test" reloadable="true">
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.16.100.9:11211,n2:172.16.100.10:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
/>
</Context>
网友评论