2019独角兽企业重金招聘Python工程师标准>>>

Memcached的内存算法:

slab allocation机制
Memcached利用slab allocation机制来分配和管理内存,它按照预先规定的⼤小, 将分配的内存分割成特定⻓长度的内存块,再把尺寸相同的内存块分成组,数据在存放时,根据键值 ⼤小去匹配slab⼤小,找就近的slab存放,所以存在空间浪费现象。

传统的内存管理⽅式是,使⽤用完通过malloc分配的内存后通过free来回收内存,这种⽅式容易产生内存碎片并降低操作系统对内存的管理效率。

查看memcached的内部状态

stats命令
stats slabs:输出slab中更详细的item信息
stats items:输出各个slab中的item信息。
stats sizes:输出所有item的⼤小和个数

Memcached的缓存策略:

Memcached的缓存策略是LRU(最近最少使⽤用)加上到期失效策略。当你在
memcached内存储数据项时,你有可能会指定它在缓存的失效时间,默认为永久。当memcached服务器⽤用完分配的内存时,失效的数据被首先替换,然后也是最近未使⽤的数据。在LRU中,memcached使⽤的是一种Lazy Expiration策略,⾃己不会监控存入的key/vlue对是否过期,⽽是在获取key值时查看记录的时间戳,检查key/value对空间是否过期,这样可减轻服务器的负载。

Memcached的分布式算法:

当向memcached集群存入/取出key/value时,memcached客户端程序根据一定的算法计算存入哪台服务器,然后再把key/value值存到此服务器中。也就是说,存取数据分二步走:第一步,选择服务器;第二步,存取数据。
分布式算法(Consistent Hashing):
选择服务器算法有两种,一种是根据余数来计算分布,另一种是根据散列算法来计算分布。
余数算法:
先求得键的整数散列值,再除以服务器台数,根据余数确定存取服务器,这种方法计算简单,高效,但在memcached服务器增加或减少时,几乎所有的缓存都会失效。
散列算法:
先算出memcached服务器的散列值,并将其分布到0到2的32次方的圆上,然后用同样的方法算出存储数据的键的散列值并映射至圆上,最后从数据映射到的位置开始顺时针查找,将数据保存到查找到的第一个服务器上,如果超过2的32次方,依然找不到服务器,就将数据保存到第一台memcached服务器上。如果添加了一台memcached服务器,只在圆上增加服务器的逆时针方向的第一台服务器上的键会受到影响。

Memcache的管理与性能监控:

    可以通过命令行直接管理与监控也可通过nagios、cacti等web软件进行监控

命令行:

Stats:统计memcached的各种信息
Stats reset:重新统计数据
Stats slabs,显示slabs信息,可以详细看到数据的分段存储情况
Stats items:显示slab中的item数目
Stats cachedump 1 0:列出slabs第一段里存的KEY值
Set|get:保存或获取数据
STAT evictions 0:表示要腾出新空间给新的item而移动的合法item数目

其它常用软件使用:

Shell>./Memcached-tool 127.0.0.1:11211
Shell>./Memcached-tool 127.0.0.1:11211 display 

Web软件:

1   Memcache.php
2   Nagios插件
3   Cacti模块

Memcached与redis比较:

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/yangdongwei/blog/486891

memcache读书笔记(二)相关推荐

  1. oracle直查和call哪个更快,让oracle跑的更快1读书笔记二

    当前位置:我的异常网» 数据库 » <>读书笔记二 <>读书笔记二 www.myexceptions.net  网友分享于:2013-08-23  浏览:9次 <> ...

  2. 《How Tomcat Works》读书笔记(二)

    <How Tomcat Works>读书笔记(二) 这是<How Tomcat Works>第一二章的读书笔记.第一张主要写了一个静态资源处理的web服务器,第二章加了对ser ...

  3. 3D游戏设计读书笔记二

    3D游戏设计读书笔记二 一.简答题 • 解释 游戏对象(GameObjects) 和 资源(Assets)的区别与联系.   GameObjects是一个具体的实例,Assets是包括诸多游戏素材的资 ...

  4. 《Docker 技术入门与实践》-读书笔记二

    <Docker 技术入门与实践>-读书笔记一 <Docker 技术入门与实践>-读书笔记二 一.数据管理 用户在使用 Docker 的过程中,往往需要能查看容器内应用产生的数据 ...

  5. 《Introduction To Modern Cryptography》读书笔记二

    <Introduction To Modern Cryptography>读书笔记二 本笔记纯粹个人读书习惯与相应见解,内容归纳完全出于个人需要与个人局限,如有修改意见(比如哪儿应该是值得 ...

  6. 《李元芳履职记》读书笔记二 IT技术管理的沟通与团队建设

    <李元芳履职记>读书笔记二 接一 https://blog.csdn.net/qq_45937199/article/details/103305223 IT技术人员从技术岗走向管理岗,所 ...

  7. python图像处理《数字图像处理与python实现》读书笔记二:空间滤波

    文章目录 重要! 第三章 空间滤波 概览 3.1 空间滤波基础 3.1.1 空间滤波的机理 3.1.2 空间滤波器模板 3.2 平滑处理 3.2.1 平滑线性空间滤波器 3.2.2 统计排序滤波器 3 ...

  8. 《淘宝技术这十年》读书笔记 (二).Java时代的脱胎换骨和坚若磐石

    马云说过"一个好的东西往往是是说不清楚的",姑且不论这句话的对与错.但我真的很佩服<淘宝技术这十年>这本书的作者子柳,能够通过淘宝的一些故事,按照时间顺序和IT发展的各 ...

  9. 第一行代码 Android读书笔记(二)

    第一行代码 Android读书笔记 第三章 软件也要拼脸蛋-UI开发的点点滴滴 常用控件的使用方法 详解4种基本布局 自定义控件 最常用和最难用的控件-ListView 更加强大的滚动控件-Recyc ...

最新文章

  1. .sql文件如何执行_Excel如何运行可执行文件,别急,用过vba Shell函数的都知道
  2. 数学建模第五节2020.5.8-17补
  3. 凯恩帝k1000ti参数设置_KND1000TI系统参数
  4. Linux系统中设置静态ip地址
  5. Ubuntu安装caffe教程
  6. [转载] 信息系统项目管理师论文范例:论软件项目的进度管理
  7. vue中前端怎么读取txt文本文档?
  8. Html代码问题:用鼠标悬停在文字上文字的颜色就变颜色的效果
  9. JAVA文件夹批量重命名
  10. 删库跑路 php,程序员删库跑路事件,php中文网的几点声明!
  11. java 快递100_使用快递100 查询链接实现快速查询的示例
  12. 离线数仓搭建_14_DWT数据构建
  13. TCP的长连接与短连接
  14. suse11sp3上面配置zypper源
  15. php中单引号双引号那点事---顺便说说把php变量的值传给js
  16. excel省市区提取
  17. python 动漫卡通人物图片大全_用Python实现抖音上的“人像动漫化”特效,原来这么简单...
  18. MySQL级联优缺点_【Mysql】外键级联与级联的劣势_MySQL
  19. 上海科技大学计算机学院院长,王浩宇(上海科技大学常任副教授)_百度百科...
  20. 基于IOCP的局域网监控系统

热门文章

  1. Hyperledger Fabric 超级账本的硬伤
  2. springMVC的使用
  3. redis windows
  4. 使用cookie解决微信不能存储localStorage的问题
  5. ecshop简单三部实现导航分类二级菜单
  6. Jetty开发指导:框架
  7. 浅谈Dynamic 关键字系列之二:调用属性,方法,字段
  8. 代理模式、动态代理和面向方面
  9. 看了两篇园子里的文章,初步懂了点接口的涵义
  10. 看了SUMTEC的稍微思考了一下…… 感触颇深。讲一件身边的事: