一、Memcached的简介

1.memcached是什么

memcached是高性能的分布式内存缓存服务器。一般使用使用目的是,通过缓存数据查询结果,来减少数据库访问次数,以提高动态Web应用的速度,提高可扩展性!

2.memcached的特征

(1)协议简单

(2)基于libevent的事件处理

(3)内置内存存储方式

(4)memcached不互相通信的分布式

3.memcached的安装、启动

(1)安装

$ wget http://www.danga.com/memcached/dist/memcached?1.2.5.tar.gz
$ tar zxf memcached?1.2.5.tar.gz
$ cd memcached?1.2.5
$ ./configure
$ make

$ make install

(2)启动

$ /usr/local/bin/memcached p 11211 m 64m vv

这里使用的 memcached 启动选项的内容如下。
p :使用的 TCP 端口。默认为 11211
m :最大内存大小。默认为 64M
vv:用 very vrebose 模式启动,调试信息和错误输出到控制台
d :作为 daemon 在后台启动

二、Memcached的基础知识

1.保存数据

add : add key flag expiretime 字节长度

replace:replace key flag expiretime 字节长度

set: set key flag expiretime 字节长度

2.获取数据

获取一个键的值:get key

获取多个键的值:get key1 key2

3.删除数据

delete key

4.append(在当前值的后面追加)

append key flag expiretime 字节数

5.prepend(在当前值的前面添加)

prepend key flag expiretime 字节数

三、理解Memcached的内存结构

1.Slab Allocation机制:整理内存以便重复使用
Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。
Slab Allocator分配的内存不会被释放,可以重复使用。
2.主要术语
Page:分配给Slab的内存空间,默认是1MB。分配给Slab之后根据slab的大小切分成chunk。
Chuck:用于缓存记录的内存空间。
Slab Class:特定大小的chunk的组。

3.Slab Allocator的缺点
由于它分配的是特定大小的内存,会造成内存的浪费;

4.使用Growth Factor进行调优
memcached 在启动时指定 Growth Factor 因子(通过?f 选项),就可以在某种程度上控制 slab 之间的差异。
默认值为 1.25。
5.查看memcached的内部状态
stats、stats slabs、stats items
6.查看slabs的使用状况
可通过memcached-tool脚本很方便的查看slab的使用状态;

四、Memcached的删除机制和发展方向
1.LRU:从缓存中有效删除数据的原理
LRU:Least Recently Used 最近最少使用的;

五、Memcached的分布式算法
1.memcached的分布式算法

memcached保存数据时,当key产地给客户端程序库后,客户端会根据相应的算法指定对应的服务器。然后再进行保存。
当get数据时,由于使用key保存,使用的算法相同,所以找到的服务器也是之前保存数据的那台服务器。从而实现分布式。

2、分布式算法
(1)余数算法
根据服务器台数的余数来进行分散!该算法的分散性非常优秀!只是当添加新的服务器时,缓存重组的代价比较大,余数就会发生变化,就无法获取与保存时相同的服务器了,从而影响命中率。
(2)散列算法
首先求出memcached服务器的hash值,并将其配置到0~2^32的圆上。然后用同样的方法求出存储数据的键的hash值,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过2^32仍然找不到服务器,就会保存到第一台memcached服务器上。散列算法最大限度的抑制了key的重新分布。

六、Memcached的应用和兼容程序

1.通过daemontools启动
当出现memcached突然死掉的情况,可通过该工具进行自动启动!

转载于:https://www.cnblogs.com/xialiaoliao0911/p/7523974.html

Memcached全面剖析相关推荐

  1. memcached全面剖析–2.理解memcached的内存存储

    版权声明:可以任意转载,但转载时必须标明原作者charlee.原始链接http://tech.idv2.com/2008/07/11/memcached-002/以及本声明 下面是<memcac ...

  2. 艾伟:memcached全面剖析–3.memcached的删除机制和发展方向

    本系列文章导航 memcached完全剖析–1. memcached的基础 memcached全面剖析–2.理解memcached的内存存储 memcached全面剖析–3.memcached的删除机 ...

  3. memcached全面剖析--3.memcached的删除机制和发展方向

    下面是<memcached全面剖析>的第三部分. 发表日:2008/7/16 作者:前坂徹(Toru Maesaka) 原文链接:http://gihyo.jp/dev/feature/0 ...

  4. memcached全面剖析 –3.memcached的删除机制和发展方向

    來源:http://tech.idv2.com/2008/07/16/memcached-003/ 作者:charlee 版权声明 :可以任意转载,但转载时必须标明原作者charlee.原始链接htt ...

  5. memcached全面剖析–2.理解 memcached的内存存储

    來源:http://tech.idv2.com/2008/07/11/memcached-002/ 作者charlee 版权声明 :可以任意转载,但转载时必须标明原作者charlee.原始链接http ...

  6. memcached全面剖析–2. 理解memcached的内存存储

    2019独角兽企业重金招聘Python工程师标准>>> 下面是<memcached全面剖析>的第二部分. 发表日:2008/7/9  作者:前坂徹(Toru Maesak ...

  7. 艾伟:memcached全面剖析–2.理解memcached的内存存储

    本系列文章导航 memcached完全剖析–1. memcached的基础 memcached全面剖析–2.理解memcached的内存存储 memcached全面剖析–3.memcached的删除机 ...

  8. memcached全面剖析–4. memcached的分布式算法

    本次不再介绍memcached的内部结构, 开始介绍memcached的分布式. memcached的分布式 正如第1次中介绍的那样, memcached虽然称为"分布式"缓存服务 ...

  9. memcached全面剖析–3.memcached的删除机制和发展方向

    memcached是缓存,所以数据不会永久保存在服务器上,这是向系统中引入memcached的前提. 本次介绍memcached的数据删除机制,以及memcached的最新发展方向--二进制协议(Bi ...

最新文章

  1. python+selenium浏览器常用操作(一)
  2. 在java中开发图形用户_2016年计算机二级考试《JAVA》习题:编写图形用户界面
  3. Cordova error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Deve
  4. 2012matlab aerospace,Matlab 2012安装图解
  5. vs2008下设置.h, .lib和 .dll 的路径配置全图及其意义
  6. python关于二手房的课程论文_python之数据清理-以二手房信息为例
  7. html英文字体汇总,笔记 CSS常用中文字体英文名称对照表
  8. “咕”了 73 天,何同学终于回归:最喜欢 3D 打印机,但不要买
  9. 【C/C++】成员变量的初始化顺序
  10. 在计算机网络中vc是,计算机网络——第一章 体系
  11. 拓端tecdat|R语言如何找到患者数据中具有差异的指标?(PLS—DA分析)
  12. 搭建kafaka集群
  13. PMP助力!让你成功转型项目管理
  14. aso优化应用市场推广方案怎么写
  15. Blue Coat 最新报告显示 移动端恶意攻击愈演愈烈
  16. 该如何提高个人影响力
  17. 基于MATLAB的激光光斑图像处理算法
  18. 全相等函数 isEqual
  19. java 包别名_包别名(Package Aliasing)
  20. Android Settings模块

热门文章

  1. 推荐系统算法_机器学习和推荐系统(二)推荐算法简介
  2. SQL优化|Java面试题
  3. 树莓派文件服务器nas,树莓派搭建NAS服务器
  4. 华为linux笔记本开售,华为 MateBook D Linux 版明天开售 一种价格两种版本
  5. ios如何看idfv_iOS获取各种数据方法整理以及IDFA与IDFV使用环境
  6. ad用户和计算机的使用方法,AD技巧之指定用户登录和指定计算机登陆
  7. 基于LM567制作的反射式红外检测电路,用于节能信标检测电路
  8. 2021年黑龙江省智能车邀请赛
  9. 清华校庆正当时,智能小车决赛日
  10. 苹果系统怎么降低版本_1903、1809...到底怎么看系统版本?