Memcached的原理及应用.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Memcached的原理及应用

Memcached详解及应用 Part I Memcached的基础 1.Memcached的基础 memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。 memcached的特点 memcached作为高速运行的分布式缓存服务器,具有以下的特点。 协议简单 基于libevent的事件处理 内置内存存储方式 memcached不互相通信的分布式 协议简单 memcached的服务器客户端通信并不使用复杂的XML等格式, 而使用简单的基于文本行的协议。 因此,通过telnet 也能在memcached上保存数据、取得数据。 例子 $ telnet localhost 11211 Trying ... Connected to localhost.localdomain (). Escape character is ^]. set foo 0 0 3 (保存命令) bar (数据) STORED (结果) get foo (取得命令) VALUE foo 0 3 (数据) bar (数据) 协议文档参见: /svn/memcached/trunk/server/doc/protocol.txt 基于libevent的事件处理 libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能 封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能 libevent: /~provos/libevent/ The C10K Problem: /c10k.html 内置内存存储方式 为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。 由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。 另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。 memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。 memcached的分布式 memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。 各个memcached不会互相通信以共享信息。,进行分布式完全取决于客户端的实现。 memcached的分布式 安装memcached 先安装libevent /~provos/libevent/ 再安装memcached /memcached/download.bml 启动memcached /usr/local/bin/memcached -options 常用选项说明 -s file 使用unix的socket(禁用tcp) -p使用的TCP端口。默认为11211 -u使用的用户,默认当前账户 -m最大内存大小。默认为64M -vv用very vrebose模式启动,调试信息和错误输出到控制台 -d作为daemon在后台启动 客户端连接 Perl的memcached客户端有 Cache::Memcached Cache::Memcached::Fast Cache::Memcached::libmemcached 其中Cache::Memcached是memcached的作者Brad Fitzpatric的作品 例子 #!/usr/bin/perl use strict; use warnings; use Cache::Memcached; my $key = foo; my $value = bar; my $expires = 3600; # 1 hour my $memcached = Cache::Memcached-new({ servers = [:11211], compress_threshold = 10_000 }); $memcached-add($key, $value, $expires); my $ret = $memcached-get($key); print $ret\n; Cache::Memcached常用的选项如下所示。 选项说明 Servers: 用数组指定memcached服务器和端口 compress_threshold: 数据压缩时使用的值(如果不是内存非常吃紧或者对速度上要求很低的话建议不要压缩,数据压缩很慢) Namespace: 指定添加到键的前缀 保存数据 向memcached保存数

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档