- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Memcached浅析
Memcached浅析
索引
Memcached介绍
基于客户端的分布式
服务器端使用介绍
注意事项
客户端调用示例
Memcached介绍
Memcached是国外社区网站 LiveJournal 的开发团队开发的高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
优点:缓存,缓解数据库压力,快速读写,分布式
缺点:内存存储,断电即丢
无任务权限和管理机制(部署在内网)
Memcached介绍
运行图
Memcached介绍
特性:
基于C/S结构,协议简单
内存管理方式
基于客户端的分布式
Memcached介绍
基于C/S结构,协议简单
Memcached介绍
内存管理方式
数据存储方式:Slab Allocation
Lazy expiration + LRU
Memcached介绍
Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。
Slab Allocation的原理相当简单。 将分配的内存分割成各种尺寸的块(chunk),并把尺寸相同的块分成组(chunk的集合)
缺点:字节浪费
Slab Allocation
Memcached介绍
数据过期方式
Lazy Expiration
memcached在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间。
LRU ( Least Recently Used)
空间不足时LRU算法删除机制
基于客户端的分布式
基于客户端的分布式
memcached client for java:
较早推出的memcached JAVA客户端API,应用广 泛,运行比较稳定。
spymemcached:
支持异步,单线程的memcached客户端,用到了java1.5版本的concurrent和nio,存取速度会高于前者,但是稳定性不好,测试中常报timeOut等相关异常。
由于memcached client for java发布了新版本,性能上有所提高,并且运行稳定,所以建议使用memcached client for java.
基于客户端的分布式
分布式算法:
余数分散
增删机器余数变化大,影响命中率
Consistent Hashing
首先求出memcached服务器(节点)的哈希值,并将其配置到0~232的圆(continuum)上。然后用同样的方法求出存储数据的键的哈希值,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上。
基于客户端的分布式
Consistent Hashing
服务器端使用介绍
# /usr/local/bin/memcached -p 11211 -d -u hualiangxie -m 512 -c 1024 –vvv
-p num 监听的TCP端口 (缺省: 11211)
-d 以守护进程方式运行Memcached
-u username 运行Memcached的账户,非root用户
-m num 最大的内存使用, 单位是MB,缺省是 64 MB
-c num 软连接数量, 缺省是 1024
-v 输出警告和错误信息
-vv 打印客户端的请求和返回信息
-h 打印帮助信息
-i 打印memcached和libevent的版权信息
-t number of threads to use, default 4 可以使用的线 程数,默认是4个,根据服务器cpu核数设置。
-l interface to listen on, default is INDRR_ANY 监控的ip地址,默认是内网ip。
-M 内存耗尽时返回错误,而不是删除项
-f 块大小增长因子,默认是1.25
服务器端使用介绍
检查使用状态
查找进程
telnet ip port 登录
stats命令查看
set,get,delete,
replace
服务器端使用介绍
Pid memcache服务器的进程ID
Uptime 服务器
文档评论(0)