Memcached详解

-
教你如何使用Memcached的教材
idy 2. com 3.4外部引擎支持. 20 外部引擎支持的必要性. 垂垂看看 20 简单API设计的成功的关键 21 重新审视现在的体系… 21 3.5总结… 2 第4章 memcached的分布式算法 4.1 memcached的分布式 memcached的分布式是什么意思? 23 4.2 Cache: Memcached的分布式方法 根据余数计算分散. 根据余数计算分散的缺点 26 4.3 Consistent Hashing 27 Consistent Hashing的简单说明. 支持 Consistent Hashing的函数厍 .看看·垂 总结 第5章 memcached的应用和兼容程序.…. 30 5.1mixi案例研究… 服务器配置和数量 音看看 .30 memcached进程 memcached使用方法和客户端 .··.···::::: 音。着·看着垂普鲁D·。······着番普音垂音 52 memcached应用经验 …132 通过 dacmontools启动 监视 memcached的性能 33 5.3兼容应用程序 135 Tokyo tyrant案例…15 54总结 36 idy 2. com 羊者序 译者序 如今,越来越多的wcb应用程序开始使用 memcached这个髙速的缓存服务器软件。然而, memcached的基础知识远远未能像其他Web技术那样普及, memcached在国内的大规模应用也鲜为 人知。而日本的mixi(htp:/ mixi. it)则在这方面走在了前面,不仅人规模使用 memcached作为缓 存来加速Web应用,而且自行开发了 Tokyo Cabinit、 Tokyo Tyrant等一系列相关的软件。 最近,口本的技术评论社的网站上刊登了mixi的两名工程师长野雅广、前坂徹撰写的篇连载 《 memcached态知以尽<寸》。这篇连载语言简洁、通俗易懂,非常适合 memcached入门的人阅读 因此我将它翻泽成中文,发表在我的技术blog( Lech. idy2com)上。然后将翻译结果合并后稍作加 工,形成了这篇PDF文档,以方使阅读。 本文的原文地址如下,懂日语的朋友可以直接去参考原文 http:/gihvoip/dev/feature/01/memcached/ 翻译后的文章地址如下 第1章:hp:/ ech.idv2om/2008/07/10 memcached-o AE24: heLp: //Lech. idv 2. com/2008/07/11/memcached-002/ ●第3章:hp/ ech. idv2com2008/07/6/ memcached-003 Ge4K:http://tech.idv2.com/2008/07/24/memcached-004/ C54:http://tech.idv2.com/2008/07/31/memcached-005/ 本PDF可以在这个地址下载 .http://tech.idv2.com/2008/08/17/memcached-pdf/ charlee 008年8月17日 idy 2. com 第1章 memcached的基础 第1章 memcached的基础 我是皿x株式会社开发部系统运营组的长野。日常负责程序的运营。从今大廾始,将针对最近在 web应用的叫护展性领域的热门话题 memcached,与我公司廾发部饼究开发组的前坂一起,说明其 内部结构和使用。 11 memcached是什么? memcached是以 Livejournal旗下 Danga interactive公司的 Brad Fitzpatrick为首开发的一款软件。现在 口成为mixi、 hatena、 Facebook、Vu、 Livejournal等众多服务中提高Web应用扩展性的重要因素。 许多Wb应用都将数据保存到 RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数 据量的增大、访问的集中,就会出现 RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大 影响。 这时就该 memcached大显身手了。 memcached是高性能的分布式内存缓存服务器。一般的使用目的 是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展 性 浏览器 应用服努器 memcached memcached RDBMS RDBMS memcached memcached 百次访问:从RDBM中取得数据保存到 memcached 第二次后:从 memcached中取得数据显示页面 图11:一般情况下 memcached的用途 idy 2. com 第1章 memcached的基础 2 memcached的特征 memcached作为高速运行的分布式缓存服务器,具有以下的特点。 协议简单 基于 libevent的事件处理 内置内存存储方式 memcached不互相通信的分布式 协议简单 memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议。 因此,通过 telnet也能在 memcached上保存数据、取得数据。下面是例子。 s telnet localhost 11211 frying127.0.0.1 Connected to localhost. localdomain (127.0.0.1 Escape character is] set foo o0 3 (保存命令 bar (数据) STORE D (结果 cet too (取得命令) VALUE foo o 3 (数据) bar (数据) 协议文档位于 memcached的源代码内,也可以参考以下的URL。 http://codesixapart.com/svn/memcached/trunk/server/doc/protocolLxL 基于 libevent的事件处理 libevent是个程序库,它将 Linux的 epoll, bsd类操作系统的 kqueue等事件处理功能封装成统-的 接∏。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个 libevent斥,因此 能在 Linux、BSD、 Solaris等操作系统上发挥其高性能。关于事件处埋这里就不再详绀介绍,可以 参考 Dan kegel的TheC10 K Problen。 libevent:http://www.monkey.org/-provos/libevent/ TheC10kProblemhttp://www.kegel.com/c10k.html 内置内存存储方式 为了提高性能, memcached中保存的数据都存储在 memcached内置的内存存储空间中。由于数据仅 存在于内存中,因此重启 memcached、重启操作系统会导致全部数据消失。与外,内容容量达到扎 定值之后,就基于LRU( Least recenty used算法自动删除不使用的缓存。 memcached木身是为缓存 而设计的服务器,因此并没有过多考虑数据的永久性问题。关于内存存储的详细信息,请参考木文 的2章以后前坂介绍的内容 memcached不互相通信的分布式 memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个 memcached不会互 相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。本文也将介绍 memcached的分布式。 idy 2. com 第1章 memcached的基础 I memcached memcached memcached 分布式算法 客户端程序库 应用程序 图1.2: memcached的分布式 接下来简单介绍一下 memcached的使用方法 13安装 memcached memcached的安装比较简单,这里稍加说明 memcached支持许多平台 Linux FreeBSD Solaris( memcached1.25以上版本) · Mac os x 号外也能安装在 Windows上。这里使用 Fedora core8进行说明。 memcached的安装 运行 memcached需要本文开头介绐的 I libevent库。 Fedora8中有现成的rpm包,通过yum命令安装 即可 s sudo yum install libevent libevent-devel memcached的源代码可以从 memcached网站上下载。本文执笔时的最新版本为1.25。 Fedora8虽然 也包含了 memcached的rpm,但版本比较老。因为源代码安装并不困难,这里就不使用rpm了。 F4memcached:http://www.danga.com/memcached/download.bml memcached安裝与般应用程序相同, configure、make、 make install就行了。 swgethttp://www.danga.com/mencached/dist/memcached-1.2.5.tar.gz f tar zxf memcached-1.2.5. tar. g7 cd memcached-1.2. 5 / configure s make 7 idy 2. com 第1章 memcached的基础 e sudo make install 默认情况下 memcached安装到/usr/ local/bin memcached的启动 从终端输入以下命令,启动 memcached s /usr/local/bin/memcached-p 11211-m64m-VV slab class 1: chunk size 88 persia 11915 slab class 2: chunk size 112 persia.b 9362 slab class 3: chunk size 144pers1a7281 中间省略 slab class 38: chunk size 391224 perslab 2 slab class 39: chunk size 489032 persia <23 server listening <24 send bu=fer was 110592, now 268435455 <24 server listening (udp) <24 server listening (udp) 24 server listening (udp) <24 server listening (udp) 这里显小了调试信息。这样就在前台启动了 memcached,监听TCP端口11211最大内存使用量为 64M。调试信息的内容大部分是关于存储的信息,下一章将只体说明 作为 daermon后台启动时,只需 s /usr/local/bin/memcached -p 11211 -m 6 4m -d 这里使用的 memcached启动选项的内容如下 选项 说明 使用的TCP端口。默认为12l1 最大内存大小。默认为64Ⅵ 用 vcry vrcbosc模式启动,调试信息和错误输出到控制台 作为 daemon在后台启动 上面四个是常用的启动选项,其他还有很多,通过 s /usr/local/bin/memcached n 命令可以显示。许多选项可以改变 memcached的各种行为,推荐读一读 14用客户端连接 许多语言都实现了连接 memcached的客户端,其中以Perl、PHP为主。仅仅 memcached网站上列出 的语言就有 Pcrl PHP Python Rub C# 8 idy 2. com 第1章 memcached的基础 ·C/C++ 子寸 memcached客户端API:htp:/www.danga.com/memcached/apis.bml 这里介绍通过mxi正在使用的Perl库链接 memcached的方法。 15使用 Cache: Memcached Per的 memcached客户端有 Cache. Memcached Cache: Memcached: Fast Cache: Memcached; libmemcached 等几个CPAN模坎。这里介绍的 Cacho: Memcached是 memcached的作者 Brad fitzpatrick l作品,应 该算是 memcached的客户端中应用最为广泛的模块了。 Cache:Memcached-search.cpan.org:http://search.cpan.org/dist/Cache-Meincached/ 使用 Cache: Memcached连接 memcached 下面的源代码为通过 Cache: Memcached连接刚才启动的 memcached的例子。 #!/usr/bin/perl use stricti use warni ngs i use Cache:: Memcached i my skey =W=CO Svalue ="bar i my expires =3500;# I hour my Memcached Cache:: Memcached->new(f server s=>["127,0,0,1:11211"], compress_threshold=> 10_000 }); smemcached->add(skey, svalue, expires )i my Sret Smemcached->get(Skey)i print."sret、n"; 在这里,为 Cache: Memcached指定了 memcached服务器的IP地址和一个选项,以牛成实例 Cache: Memcached常用的选项如下所示。 选项 说明 servers 用数组指定 memcached服务器和端口 compress threshold 数据压缩时使用的值 namespace 指定添加到键的前缀 另外, Cache∷ Memcached通过 Storable模块可以将Perl的复杂数据序列化之后雨保存,因此散列 数组、对象等都可以直接保存到 memcached中。 idy 2. com 第1章 memcached的基础 保存数据 向 memcached保存数据的方法有 replace 它们的使用方法都相同: my sadd= Memcached->add('键','值','期限) my replace= memcached->ep1ace('键','值','期限) my Sset= memcached->set('键','值','期限’); 冋 memcached保存数据时可以指定期限(秒)。不指定期限时, memcached按照LRU算法保存数据 这三个方法的区别如下 选项说明 add仅当存储空间中不存在键相同的数据时才保存 replace仅当存储空间中存在键相同的数据时才保存 set 与ad和 replace不同,无论何时都保存 获取数据 获取数据可以使用get和 gct_multi方法 my Sval- Smemcached->get(' ') my sval= Memcached-> get multi('键1','键2’,'键3','键4','键5'); 次取得多条数据时使用 get_multi get_multi可以非同步地同时取得多ˆ键值,其速度要比循环调 用get快数十倍。 删除数据 删除数据仗用 delete)法,不过它有个独特的功能。 Memcached-> delete(键’,阳塞时间(秒)) 删除第一个参数指定的键的数据。第二个参数指定一个时间佰,可以禁止使用同样的键保存新数据。 此功能可以用于防止缓存数据的不完整。但是要注意,set函数忽视该阻塞,照常保存数据 增一和减一操作 可以将 memcached上特定的键值作为计数器使用 my Sret= Smemcached->incr('ftt')i Smemcached->add('te!', C) unless defined Sret 增一和减一是原」操作,但未设置初始值时,不会自动赋成0。因此,应当进行错误检查,必要时 加入初始化操作。而且,服务器端也不会对超过232时的行为进行检查

87KB
Memcached常用命令以及使用说明详解
2020-10-27Memcached常用命令以及使用说明详解
292KB
Redis和Memcached的区别详解
2020-09-10主要介绍了Redis和Memcached的区别详解,本文从各方面总结了两个数据库的不同之处,需要的朋友可以参考下
127B
memcached原理和使用详解
2019-07-23资源名称:memcached原理和使用详解内容简介: Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据
142KB
Redis 对比 Memcached 并在 CentOS 下进行安装配置详解
2020-09-09Redis 是一个开源、支持网络、基于内存、键值对的 Key-Value 数据库,本篇文章主要介绍了Redis 对比 Memcached 并在 CentOS 下进行安装配置详解,有兴趣的可以了解一下。
93KB
详解MySQL下InnoDB引擎中的Memcached插件
2020-09-10主要介绍了详解MySQL下InnoDB引擎中的Memcached插件,并且给出了实例演示,需要的朋友可以参考下
39KB
C# Memcached缓存用法实例详解
2020-09-04主要介绍了C#中Memcached缓存用法,以实例形式详细讲述了在C#中针对Memcached缓存的各种操作,非常具有实用价值,需要的朋友可以参考下
80KB
Memcached缓存系统的介绍、安装以及应用方法详解
2021-01-10本文实例讲述了Memcached缓存系统的介绍、安装以及应用方法。分享给大家供大家参考,具体如下: 一. memcached 是什么? memcached is a high-performance,
57KB
深入eAccelerator与memcached的区别详解
2020-10-27本篇文章是对eAccelerator与memcached的区别进行了详细的分析介绍,需要的朋友参考下
25KB
编译php 5.2.14+fpm+memcached(具体操作详解)
2020-10-27本篇文章是对编译php5.2.14+fpm+memcached的具体操作进行了详细的分析介绍,需要的朋友参考下
43KB
memcached 和 mysql 主从环境下php开发代码详解
2020-10-29一般的大站通常做法是 拿着内存当数据库来用(memcached). 和很好的读 写分离 备份机制 (mysql 的主从) 在这样的环境下我们怎么进行PHP开发呢。
61KB
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2020-10-21主要介绍了PHP中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
18.61MB
决战Nginx系统卷——高性能Web服务器详解与运维
2013-05-04在这个点击率就是生命的时代,高可用是不可少的。本书完整讲述了Nginx服务器的各种技术细节以及安装、部署、运维等方面的内容。 本书第一部分首先讲述了Nginx服务器的功能、模块管理和进程管理,然后
53KB
Asp.Net Couchbase Memcached图文安装调用开发
2020-10-26本文主要是是如何安装CouchBase服务端,以及客户端如何进行调用。图文详解,大家参考吧
183KB
memcached32位+64位
2018-01-10本人自己用的亲测可用如果不知道怎么用或者报错去我的博客去看看,里面都有详解!一步一步的告诉你们了!http://blog.csdn.net/programmer_fuqiang/article/det
22KB
详解MySQL下InnoDB引擎中的Memcached插件.pdf
2020-09-03前些年 HandlerSocket 的横空出世让人们眼前一亮当时我还写了一篇文章介绍了其 用法梗概时至今日由于种种原因 HandlerSocket 并没有真正流行起来不过庆幸的是 MySQL 官方受其
42KB
详解MySQL下InnoDB引擎中的Memcached插件.docx
2020-07-19前些年HandlerSocket的横空出世让人们眼前一亮当时我还写了一篇文章介绍了其 用法梗概时至今日由于种种原因 HandlerSocket并没有真正流行起来不过庆幸的是 MySQL官方受其启发研发
132KB
PHP中的Memcache详解
2020-10-26主要介绍了PHP中的Memcache,从Memcache简介开始,详细讲解了如Memcache和memcached的区别、PHP的Memcache所有操作方法、每个操作方法的详细解释等,需要的朋友可以
54KB
浅析memcache启动以及telnet命令详解
2020-12-181、启动Memcache 常用参数复制代码 代码如下:-p <num> 监听的TCP端口(默认: 11211)-U <num> UDP监听端口 (默认: 11211, 0 时关闭)-d 以守护进程方式
52KB
利用yum安装Redis的方法详解
2020-12-16介绍 Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted s
59KB
Python安装并操作redis实现流程详解
2020-12-16Redis redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorte
6.20MB
mysql数据库详解.pdf
2020-07-121、什么是数据库? 数据库:database,是存储数据的仓库。 数据库:高效的存储和处理数据的介质(介质主要有两种:磁盘和内存) 2、数据库的分类: 数据库基于存储介质的不同进行了分类:关系型数据库
175KB
图文详解Windows下使用Redis缓存工具的方法
2020-12-16一、简介 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。
63KB
关于redis状态监控和性能调优详解
2020-09-09Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表、哈希、集合和有序集合5种。下面这篇文章主要给大家介绍了关于red
27KB
redis配置文件(电子版文档材料).docx
2020-04-02? Redis配置文件详解 分类? 服务器相关? 数据库? redis2013-11-28 12:30?875人阅读? 评论(0? \o "收藏" 收藏? \o "举报" 举报 redis 内存数据库
181KB
Redis如何存储对象与集合示例详解
2020-09-09redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、 zset(sorted set
100KB
基于php使用memcache存储session的详解
2020-12-18web服务器的php session都给memcached ,这样你不管分发器把 ip连接分给哪个web服务器都不会有问题了,配置方法很简单,就在php的配置文件内增加一条语句就可以了,不过前提你需要
76KB
jd抢购茅台脚本文件
2021-01-04抢购茅台抢购茅台抢购茅台
88KB
python 随机森林算法及其优化详解
2020-09-19主要介绍了ptyhon 随机森林算法及其优化详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Python数据殿堂:数据分析与数据可视化
2020-01-02【入门基础+轻实战演示】【讲授方式轻松幽默、有趣不枯燥、案例与实操结合,与相关课程差异化】利用python进行数据处理、 分析,并结合大量具体的例子,对每个知识进行实战讲解,本课程通过大量练习和案例对各个知识点技能进行详细讲解。通过本 课程,学生将懂得pandas、numpy、matplotlib等数据分析工具;通过实战,学生将了解标准的数据分析流程,学会使用可视化的 方法展示数据及结果。
-
下载
Lenovo项目.7z
Lenovo项目.7z
-
下载
LHQListSort.zip
LHQListSort.zip
-
下载
ioncube_loaders_win_nonts_vc15_x86.zip
ioncube_loaders_win_nonts_vc15_x86.zip
-
博客
ubuntu16更换国内源后注意事项
ubuntu16更换国内源后注意事项
-
学院
单片机完全学习课程全五季套餐
单片机完全学习课程全五季套餐
-
博客
BinaryTree&分治&解题
BinaryTree&分治&解题
-
学院
彻底学会正则表达式
彻底学会正则表达式
-
博客
laravel/lumen完整打印sql
laravel/lumen完整打印sql
-
学院
(新)备战2021软考信息安全工程师基础知识套餐
(新)备战2021软考信息安全工程师基础知识套餐
-
学院
前端性能优化
前端性能优化
-
下载
2021新版KK完整模板主题源码聊天室
2021新版KK完整模板主题源码聊天室
-
学院
微服务系列第七十一季-Introducing Spring Boot
微服务系列第七十一季-Introducing Spring Boot
-
下载
mysql-installer-5.5.23.0.msi
mysql-installer-5.5.23.0.msi
-
博客
教师资格证网站打不开-20210116
教师资格证网站打不开-20210116
-
学院
Java学习路线,好的学习路线和好的方法,能让我们少走些弯路
Java学习路线,好的学习路线和好的方法,能让我们少走些弯路
-
下载
降级M254dn_nw_Printer_series_20200612
降级M254dn_nw_Printer_series_20200612
-
下载
基于matlab的人脸识别课堂考勤系统
基于matlab的人脸识别课堂考勤系统
-
博客
【JVM】字节码、JVM整体结构
【JVM】字节码、JVM整体结构
-
下载
Chromium Trace Event Format
Chromium Trace Event Format
-
下载
网络调试助手TCP/UDP
网络调试助手TCP/UDP
-
学院
【数据分析-随到随学】SPSS调查问卷统计分析
【数据分析-随到随学】SPSS调查问卷统计分析
-
下载
R_packages.rar
R_packages.rar
-
博客
C++强制类型转换
C++强制类型转换
-
下载
LABVIEW的摄像头小车上位机
LABVIEW的摄像头小车上位机
-
博客
【C++进阶】C++创建文件/屏幕输出流类(将信息同时输出到文件和屏幕)
【C++进阶】C++创建文件/屏幕输出流类(将信息同时输出到文件和屏幕)
-
博客
git 的基本配置使用
git 的基本配置使用
-
博客
java的Object类及常用方法
java的Object类及常用方法
-
学院
小白自学Photoshop美工人像抠图平面设计全套教程
小白自学Photoshop美工人像抠图平面设计全套教程
-
学院
python从入门到全栈开发·入门篇
python从入门到全栈开发·入门篇
-
下载
TPS54160开关电源原理图及PCB
TPS54160开关电源原理图及PCB