欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    memcached使用及运维.ppt

    • 资源ID:6512414       资源大小:609.50KB        全文页数:44页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    memcached使用及运维.ppt

    ,Memcached使用及运维,By 薛长俊2013-8,介绍,安装和使用,周边,Memcached,应用示例,介绍,介绍Memcached是国外社区网站 LiveJournal 的开发团队开发的高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。memcache是一个自由和开放源代码、高性能、分布式的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。,介绍,Memcached运行图,介绍,Memcached特征基于C/S架构,协议简单;基于libevent的事件处理;内置内存存储方式;基于客户端的memcached分布式。适用场景需要分布式部署的;需要频繁访问相同数据的;需要数据共享的。,介绍,基于C/S架构,协议简单 服务端启动memcached进程;客户端可以通过telnet操作,也可以通过各种编程语言实现的客户端程序存取数据及查询状态;memcached的服务器与客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议。基于libevent的事件处理 libevent是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:Windows/Linux/BSD/Solaris 等操作系统的的事件处理;包装的接口包括:poll、select(Windows)、epoll(Linux)、kqueue(BSD)、/dev/pool(Solaris);Memcached 使用libevent来进行网络并发连接的处理,能够保持在很大并发情况下,仍旧能够保持快速的响应能力。,介绍,数据存储方式:Slab AllocationSlab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。Slab Allocation的原理相当简单。将分配的内存分割成各种尺寸的块(chunk),并把尺寸相同的块分成组(chunk的集合)Slab Alloction 构造图,介绍,数据存储方式:Slab AllocationPage:分配给Slab的内存空间,默认是1MB。分配给Slab之后根据slab的大小切分成chunk。Chunk:用于缓存记录的内存空间。Slab Class:特定大小的chunk的组。memcached根据收到的数据的大小,选择最适合数据大小的slab。memcached中保存着slab内空闲chunk的列表,根据该列表选择chunk,然后将数据缓存于其中。Slab Alloction 分配图,介绍,数据存储方式:Slab AllocationSlab Alloction 缺点:由于分配的是特定长度的内存,因此无法有效利用分配的内存。例如,将100字节的数据缓存到128字节的chunk中,剩余的28字节就浪费了。,介绍,数据过期方式-Lazy Expirationmemcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间。数据过期方式-LRUmemcached会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不足的情况,此时就要使用名为 Least Recently Used(LRU)机制来分配空间。顾名思义,这是删除“最近最少使用”的记录的机制。因此,当memcached的内存空间不足时(无法从slab class 获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配给新的记录。从缓存的实用角度来看,该模型十分理想。,介绍,基于客户端的分布式选择服务器节点常见算法:1.余数式hash算法2.一致性hash算法,安装和使用,安装部署cd/root/installyum-y install libevent libevent-develfind./-type f-name*.tar.gz-exec tar-zxf;make cleanmakemake install,启动参数-p 监听的TCP端口(默认:11211)-U 监听的UDP端口(默认:11211,0表示不监听)-s 用于监听的UNIX套接字路径(禁用网络支持)-a UNIX套接字访问掩码,八进制数字(默认:0700)-l 监听的IP地址。(默认:INADDR_ANY,所有地址)-d作为守护进程来运行。-r最大核心文件限制。-u 设定进程所属用户。(只有root用户可以使用这个参数)-m 单个数据项的最大可用内存,以MB为单位。(默认:64MB)-M内存用光时报错。(不会删除数据)-c 最大并发连接数。(默认:1024)-k锁定所有内存页。注意你可以锁定的内存上限。试图分配更多内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限。-v提示信息(在事件循环中打印错误/警告信息。)-vv详细信息(还打印客户端命令/响应),安装和使用,启动参数-vvv超详细信息(还打印内部状态的变化)-h打印这个帮助信息并退出。-I打印memcached和libevent的许可。-P 保存进程ID到指定文件,只有在使用-d 选项的时候才有意义。-f 块大小增长因子。(默认:1.25)-n 分配给key+value+flags的最小空间(默认:48)-L尝试使用大内存页(如果可用的话)。-D 使用 作为前缀和ID的分隔符。-t 使用的线程数(默认:4)-R每个连接可处理的最大请求数。-C禁用CAS。-b 设置后台日志队列的长度(默认:1024)-B绑定协议-可能值:ascii,binary,auto(默认)-I 重写每个数据页尺寸。调整数据项最大尺寸。,安装和使用,监测脚本示例#!/bin/shpid=/bin/ps-ef|grep memcached-d|grep 8086|grep-v grep|awk print$2 if-n“$pid”;thenecho$pidelse/opt/soft/memcached/bin/memcached-d-m 2048-c 2048-l 127.0.0.1-p 8086-u rootfi添加至cron*/opt/scripts/checkMemcached.sh,安装和使用,命令列表存储命令set/add/replace/append/prepend/cas读取命令get/gets删除命令delete计数命令incr/decr统计命令stats/settings/items/sizes/slabs工具memcached-tool,安装和使用,格式command,安装和使用,存储命令set/add/replace,安装和使用,set lu 32 0 7zichengSTORED/正确get luVALUE lu 32 7zichengENDset lai 32 0 6laijiCLIENT_ERROR bad data chunkERROR/长度错误,set lu 32 0 7zichengSTOREDadd lu 32 0 7zichengNOT_STORED/已存在不能addadd lai 32 0 5laijiSTORED/不存在可以add,set lu 32 0 7zichengSTOREDreplace lu 32 0 9luzichengSTORED/已存在可以replacereplace jige 32 0 5laijiNOT_STORED/不存在不能replace,datablock长度必须正确,add只能添加不存在的key,replace只能替换已有的key,读取命令get/gets,安装和使用,set lu 32 0 7zichengSTOREDset lai 32 0 5laijiSTOREDget lu laiVALUE lu 32 7zichengVALUE lai 32 5laijiEND,get普通查询,gets用于查询带版本的值,多个key用空格分开,set lu 32 0 7zichengSTOREDset lai 32 0 5laijiSTOREDgets lu laiVALUE lu 32 7 3zichengVALUE lai 32 5 4laijiEND,检查存储命令cas,安装和使用,gets lu VALUE lu 32 7 3zichengENDcas lu 32 0 7 3zichengSTORED/版本号相同才修改gets luVALUE lu 32 7 5zichengEND,cas即check and set,只有版本号相匹配时才能存储,否则返回EXISTS设计意图:解决多客户端并发修改同一条记录的问题,防止使用经过改变了的value/key对,计数命令incr/decr,安装和使用,set count 32 0 11STOREDincr count 100101decr count 2378,delete count DELETEDincr count 1NOT_FOUND,set lu 32 0 7zichengSTOREDincr lu 100CLIENT_ERROR cannot increment or decrement non-numeric value,实现计数器,key不存在不能计数,value不是数字不能计数,删除命令delete,安装和使用,set lu 32 0 7zichengSTOREDdelete luDELETEDget luEND,格式:delete time:秒数或Unixtime,在time时间内不能add或replace,但能set,不能get。过期后才能够重新set有效并能get,统计命令stats,安装和使用,格式:stats,statsSTAT pid 25587STAT uptime 6038STAT time 1376993797STAT pointer_size 64STAT rusage_user 0.000000STAT rusage_system 0.004000STAT curr_connections 5STAT total_connections 8STAT connection_structures 6END,stats统计项,安装和使用,分析CPU占用是否高,分析连接数是否太多,分析命中率是否太低,分析字节数流量,分析对象数LRU频率,stats settings查看设置,安装和使用,stats settingsSTAT maxbytes 2147483648STAT maxconns 2048STAT tcpport 8086STAT udpport 8086STAT verbosity 0STAT oldest 0STAT evictions onSTAT domain_socket NULLSTAT umask 700STAT growth_factor 1.25END,stats items数据项统计,安装和使用,stats itemsSTAT items:1:number 3STAT items:1:age 4306STAT items:1:evicted 0STAT items:1:evicted_nonzero 0STAT items:1:evicted_time 0STAT items:1:outofmemory 0STAT items:1:tailrepairs 0STAT items:1:reclaimed 0END,stats sizes对象数量统计,安装和使用,格式:STAT 注意:会锁定服务,暂停处理请求,stats sizesSTAT 96 3END,stats slabs区块统计,安装和使用,被浪费内存数=(total_chunks*chunk_size)-mem_requested如果太大,需要调整factor,stats slabsSTAT 1:chunk_size 96STAT 1:chunks_per_page 10922STAT 1:total_pages 1STAT 1:total_chunks 10922STAT 1:used_chunks 3STAT 1:free_chunks 2STAT 1:free_chunks_end 10917STAT 1:mem_requested 224.STAT total_malloced 1048512END,区块数量,命中率,分析占用情况,其它命令,安装和使用,versionflush_allquit,versionflush_allOKquitConnection closed by foreign host.,magent,介绍 magent 是一个简单,但非常有用的 memcached 缓存服务器的代理小程序。功能保持到memcached服务器的多个连接;支持下列memcached指令:get getsdeleteincr decradd set replace prepend appendcas基于 libevent 的事件驱动库;支持 ketama 算法;服务器备份;unix domain socket。,magent,命令行参数-h this message-u uid-g gid-p port,default is 11211.(0 to disable tcp support)-s ip:port,set memcached server ip and port-b ip:port,set backup memcached server ip and port-n number,set max connections,default is 4096-D do not go to background-k use ketama key allocation algorithm-f file,unix socket path to listen on.default is off-i number,max keep alive connections for one memcached server,default is 20-v verbose,magent,工作流程单key请求,先从服务集群中获取数据,失败从备份集群中获取;对多key的请求,会进行遍历;delete incr decr add set replace prepend append cas这些命令会同时发送给服务集群和备份集群;与memcached保持长链接;支持ketama算法(一致性hash的一个实现),添加/删除memcached服务器是只影响到1/n的key。,memcachedb,介绍memcachedb是 一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是 不需要严格事务约束,能够被持久化保存的应用场景。特性key/value对象的高性能读写;高可靠的持久化存储;高可用的数据存储和复制;与memcached协议兼容性。,memcachedb,支持的memcached协议get(also mutiple get)set,add,replace append/prepend incr,decr delete stats 私有协议rget db_checkpoint db_archive,memcache,简介memcache是一个关于memcached的php模块。memcache模块提供了于memcached方便的面向过程及面向对象的接口,memcache模块同时提供了一个session 处理器(memcache)。,memcache,部署安装yum-y install libevent libevent-develcd/root/installfind./-type f-name*.tar.gz-exec tar-zxf;/opt/soft/php/bin/phpize./configure-with-php-config=/opt/soft/php/bin/php-configmake cleanmakemake installecho memcachenextension=memcache.so/opt/soft/php/lib/php.ini,memcache,使用示例connect(localhost,11211)or die(Could not connect);$version=$memcache-getVersion();echo Servers version:.$version.n;$tmp_object=new stdClass;$tmp_object-str_attr=test;$tmp_object-int_attr=123;$memcache-set(key,$tmp_object,false,10)or die(Failed to save data at the server);echo Store data in the cache(data will expire in 10 seconds)n;$get_result=$memcache-get(key);echo Data from the cache:n;var_dump($get_result);?,libmemcached,介绍libmemcached是C客户端到memcached服 务器的接口库。具有低内存占用率、线程安全、并提供对memcached功能的全面支持。它还采用多种命令行工具,包括:memcat、memflush、memrm、memstat、memslap。,libmemcached,部署安装yum install libmemcached.x86_64 libmemcached-devel.x86_64-ycd/root/installtar-zxf memcached-2.0.1.tgz;tar-zxf libmemcached.green.tar.gz-C/opt/soft/opt/soft/php/bin/phpize./configure-with-php-config=/opt/soft/php/bin/php-config-with-libmemcached-dir=/opt/soft/libmemcached/make clean;make;make installecho-e memcachednextension=memcached.so/opt/soft/php/lib/php.ini,libmemcached,示例addServer(localhost,11211);$mc-set(foo,Hello!);$mc-set(bar,Memcached.);$arr=array($mc-get(foo),$mc-get(bar);var_dump($arr);?,应用示例,最常见用法:作为mysql的上层缓冲,应用示例,Memcached集群,统一提供服务,应用示例,Magent,Thank you!,

    注意事项

    本文(memcached使用及运维.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开