memcached介绍与作用和它的工作原理
这里写目录标题
- 一. memcached介绍
- 二. memcached特征 :
- 三. memcached作用 :
- memcached适合做的东西 :
- 四. memcached工作原理 :
- memcached内存算法 :
- memcached缓存策略 :
- memcached失效策略 :
- memcached分布式算法 :
- memcached与redis比较
一. memcached介绍
- memcached是一种缓存技术,在存储在内存中(高性能分布式内存缓存服务器).目的 : 提速.(传统的都是把数据保存在关系型数据库管理系统既RDBMS,客户端请求时会从RDBS中读取数据并在浏览器中显示,这样当访问量过大时或集中时,导致RSBMS负担过重,数据库响应恶化,浏览器中显示延迟等严重问题,使用memcached减少数据库查询和访问次数以提供访问速度,提供扩展性)memcached为key->value非关系型数据库,key为一般子串,值唯一.value除了php中的资源不能存,其它的数据都能存储(字符串,数值,数组,对象,布尔值,null,二进制<图片,视频>)
提速方法 :
1.传统 : 模拟cached方法(存储到数据库时生成一份静态文件到磁盘中)
2.直接操作内存(内存表,memcached服务维持了一张内存表hashdata)
3.CPU寄存器(最高速的,但是代价成本高)
二. memcached特征 :
- 1.协议简单(文本行协议)
- 2.基于libevent事件处理(注 : libevent是一个程序库,封装了linux的epoll,BSD等操作系统的kqueue等事件处理功能.即使对服务器的连接数添加,也能发挥O(1)的性能. memcached在linux,BSD等操作系统上能发挥其高性能.)
- 3.内置内存存储方式(存储在memcached内置的内存存储空间中,提高性能.问题 : memcached重启或操作系统重启数据会丢失,达到一定量后会启动算法自动删除不使用的缓存)
- 4.不互相通信的分布式(不互相通信共享信息)
三. memcached作用 :
- 1.高性能分布式缓存服务器(缓存数据库查询结果,减少数据库访问次数)缓存读取/写入过程 : 首次访问 : 从RDBMS中取得数据保存到memcached;第二次后 : 从memcached中取得数据显示页面.
memcached适合做的东西 :
- 1.访问频繁的字典数据
- 2.大量的hot数据(热门数据缓存)
- 3.页面缓存(web站常用)
- 4.搜索的查询条件和结果(热门搜索的内存缓存起来)
- 5.临时处理数据(不需要入库,排重)
四. memcached工作原理 :
- memcached的工作就是在专门的机器的内存里维护一张巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率.采用的是C/S模式,在server端启动服务进程,在启动时可以指定监听的ip,自己的端口号,所使用的内存大小等几个关键参数.采用了单进程,单线程,异步I/O,基于事件(event_based)的服务方式.使用libevent作为事件通知实现.每个Server只是对自己的数据进行管理.Client端通过指定Server端的ip地址(通过域名应该也可以).以key->value形式,key的值通过hash进行转换,然后确定对那台server存储/获取数据.
memcached内存算法 :
- 使用的是slab
allocation机制分配和管理内存,按照预先规定的大小,将分配的内存分割成特定长度的内存块,再把尺寸相同的内存块分成组,数据在存放时,根据键值大小去匹配slab大小,找就近的slab存放,所以存在空间浪费现象.
memcached缓存策略 :
- 是LRU(最近最少使用)加上到期失效策略.当你在memcached内存储数据项时,你有可能会指定它在缓存的失效时间,默认为永久.当memcached服务器用完分配的内存时,失效的数据被首先替换,然后也是最近使用的数据.在LRU中,memcached使用的是一种Lazy Expiration策略,自己不会监控存入的key/value对是否过期,而是在获取key值时查看记录的时间戳,检查key/value对空间是否过期,这样可减轻服务器的负载.
memcached失效策略 :
- Lazy expiration + LRU
- Lazy expiration作用 :
假如我们所存储的数据项相对多的时候,在这时候进行监控的话,话费的代价是相当大的,所以memcached不会在过期监视上耗费风度哦的CPU时间,从而在性能方法也起到一定的优化作用. - LRU : memcached会优先使用已超时的空间,但是还是会有追加信息时空间不足的状态,这时候会使用Least Recently Used(LRU)机制来分配空间,就从最近未被使用的记录中搜索,并将其空间分配给新的记录.
memcached分布式算法 :
- 当向memcached集群存入/取出Key/value时,memcached客户端会根据一定算法计算存入那台服务器.(第一步 :
选择服务器,第二步 : 存取数据) - 余数算法 : 先求得键的整数散列值,再除以服务器数量,根据余数觉得存储那台服务器.(特点 :
简单,高效.但是扩展性差,服务器数量变更时,几乎所有的缓存都会失效) - 散列算法 : 先计算memcached的散列值,并将其发布在0-2 ^ 32的圆上,然后用同样的方法算出存储数据键的散列值并映射至圆上,最后从数据映射到的位置开始顺时针查找,将数据保存在查找到的第一台服务器,如果超过2^32还是找不到,则将数据保存在第一台memcached服务器上.如果添加一台memcached服务器,则只在圆上添加的逆时针方向的第一台服务器上的键会受到影响.
memcached与redis比较
- memcached : 支持多核,内存利用率高,无持久性,数据结构简单.
- redis : 单核,内存利用率低(采用压缩会比memcached高),有(硬盘存储,主从同步),数据结构复杂.
注释 :
- 散列值 :
将值从一个大的(可能很大)定义域映射到一个较小值域的(数学)函数.散列函数是把该函数应用到大的定义域中的若干值得(大)集合的结果可以均匀地(和随机地)被分布在该范围上.
memcached介绍与作用和它的工作原理相关推荐
- redis介绍以及使用 ppt_光纤收发器的工作原理以及使用方法介绍
关于光纤收发器的工作原理以及使用方法这块,在这里飞畅科技的小编做了专门的整理,首先,我们来了解下什么是光纤收发器,光纤收发器是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元 ...
- 三线压力传感器原理_三线机油压力传感器作用是什么?工作原理是什么?
机器的出现就是工业革命的开始,发动机是工业革命的一个代表性产物,其中的三线机油压力传感器更是尤为重要.那么三线机油压力传感器作用是什么?工作原理是什么?传感器那些事将为您详细介绍. 三线机油压力传感器 ...
- 计算机内页动画的作用是什么,滑环工作原理动画示意图有什么作用?
滑环工作原理动画示意图有什么作用? 发布日期:2019-01-16 滑环在电机上面所起到的作用还是非常大的,如果在购买滑环时所购买到的质量不好使用性不高,都会影响到最终的定机使用性.当然在购买了之后也 ...
- 计算机中SRAM的作用,SRAM特点及工作原理
SRAM是英文Static RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据. 基本简介 SRAM不需要刷新电路即能保存它内部存储的数据.而DRAM(Dynamic ...
- 介绍一下三电平Boost变换器工作原理
三电平Boost变换器是一种用于提高直流电压的电力电子器件.它的工作原理是利用两个晶体管或三极管作为开关,通过控制这些开关的开启和关闭,从而实现对电压的提高. 在工作过程中,输入电压通过一个开关流到变 ...
- 转码服务器 作用,转码服务器工作原理介绍.pdf
sewise转码服务器软件 Sewise Transcode Server 主讲:谢霞 转 码 Contents 目录 服 务 01 产品简介 器 02 产品模块 软 03 产品流程 件 04 产品关 ...
- 神经网络在控制中的作用,间歇控制器的工作原理
什么是神经网络控制 神经网络控制技术是一项复杂的系统控制技术,一般应用在变频器的控制中,它是通过对系统的辨识.运算后对变频器进行控制的一种新技术. 而且神经网络控制可以同时控制多个变频器,所以应用在多 ...
- 三极管的介绍及工作原理
转载自[http://www.elecfans.com/yuanqijian/sanjiguang/20170425510870.html] 三极管的介绍及工作原理 三极管介绍 三极管的工作原理 一. ...
- SSL工作原理介绍以及java实现
SSL工作原理介绍以及java实现 目录 SSL工作原理介绍以及java实现 SSL简介 SSL工作原理 握手协议Handshake protocol 1握手阶段使用RSA加密算法 2握手阶段使用Di ...
- 计算机温度控制的原理,数字温度控制器的简介 数字温度控制器的工作原理介绍【详解】...
我们都知道温度,对于我们的生活是非常重要的,可以说温度对我们的心情以及身体都有很大的影响.那么温控器在生活中也就显得尤为重要.温控器就是可以根据工作环境的温度变化,在开关内部发生物理形变,从而产生某些 ...
最新文章
- 源码资本张宏江:只有算法和技术,那你一定挣不到钱
- 二十一、oracle pl/sql分类一 存储过程
- poj-1659-Frogs Neighborhood-(图论-是否可图)
- 不可思议!这篇全篇脏话的文章竟然发表了
- 19年兰州大学计算机分数线,兰州大学2019年在广东省录取分数线
- Web前端笔记-解决Vue编写的输入框(input、textarea等)使用JS设置value时提交表单无效的问题
- js中getBoundingClientRect的作用及兼容方案
- java获取mysql表的主键_用java如何获取oracle数据库表里面的主键序列
- 抢红包老司机给你传授秘技,python软件秒抢微信红包
- 2021年山东省安全员C证考试内容及山东省安全员C证模拟试题
- KB和kB,MB和mb,详细解释计算机存储单位
- 微信客户端如何发只有纯文字 不带图片的朋友圈动态
- 后台录屏、应用外录屏、跨应用录屏、直播屏幕、录屏扩展(ios)
- php%00 截断,%00截断问题
- 微信公众号如何插入html,教你如何在微信公众号优雅的展示代码
- AI RoboForm 7.3.2发布[附pro破解方法]
- zzuli oj 2532: 婷婷是土豪 DFS深搜
- 手把手教你做20道菜全套教程
- 动态规划与最长重复子串 LRS and Dynamic Programming
- 深入理解line-height和vertical-align