摘要: 1 LVM相关理论 1.1 LVM的作用及构成 想象一个场景,你在安装系统时分配该/home 50GB,随着后续使用导致/home 的文件系统不够大,这时需要怎么去解决?可以选择加装一块硬盘,重新分区格式化,将原来的数据迁移过来。这样的做法十分麻烦,并且重新分配的空间不能灵活地进行调整。我们可以使用 阅读全文
posted @ 2019-04-30 15:34 不学习就没有梦想 阅读(553) 评论(0) 推荐(1) 编辑
摘要: Memcached过期键删除策略 1. 惰性删除。memcached一般不会主动去清除已经过期或者失效的缓存,当get请求一个item的时候,才会去检查item是否失效。 2. flush命令。flush命令会将所有的item设置为失效。 3. 创建的时候检查。Memcached会在创建ITEM的时 阅读全文
posted @ 2019-04-11 21:02 不学习就没有梦想 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 模型分析 在开始解剖memcached关于内存管理的源代码之前,先宏观上分析一下memcached内存管理的模型是怎样子的: 提个建议,我觉得memcached内存管理的模型与我们平时做作业的作业本“画格子给我们往格子里面写字”的逻辑很像,一本本作业本就是我们的内存空间,而我们往里写的字就是我们要存 阅读全文
posted @ 2019-04-11 21:02 不学习就没有梦想 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 数据结构 Memcached中实现了高性能的hashtable。其解决hash冲突的方法采用拉链法。当hashtable 中存储的item个数大于容器大小的1.5倍的时候通知线程进行hashtable 扩容,为了保证在扩容期间的读写性能,扩容线程默认每次只迁移一个bucket。设置一个变量标识当前的 阅读全文
posted @ 2019-03-30 10:16 不学习就没有梦想 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 序言 与单机环境下编程相比,分布式环境下的编程有两点不同: 第一章 概述 1、分布式存储分类 数据的种类大致可以分为三类: 根据储存数据种类的不同,可以将储存系统分为以下几类: 第二章 单机存储系统 1、硬件基础 传统的数据中心网络拓扑为三层结构,该网络拓扑下,同一接入层下服务器之间带宽相同,不同接 阅读全文
posted @ 2019-03-29 20:40 不学习就没有梦想 阅读(1120) 评论(0) 推荐(0) 编辑
摘要: conn结构主要是存储单个客户端的连接详情信息。每一个客户端连接到Memcached都会有这么一个数据结构。 我们可以看一下conn_new这个方法,在这个方法里面会对iov和msglist两个参数进行初始化。 数据结构关系图(iov和msglist之间的关系): 从process_get_comm 阅读全文
posted @ 2019-03-29 10:05 不学习就没有梦想 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 整体流程 1. 当客户端和Memcached建立TCP连接后,Memcached会基于Libevent的event事件来监听客户端是否有可以读取的数据。 2. 当客户端有命令数据报文上报的时候,就会触发drive_machine方法中的conn_read这个Case。 3. memcached通过t 阅读全文
posted @ 2019-03-25 10:10 不学习就没有梦想 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 1、Memcached的网络模型 Memcached的网络模型是基于Libevent网络库开发的,同时Memcached采用多线程的工作方式,工作线程和主线程之间采用pipe进行通信。Memcached的网络线程模型主要涉及两个主要文件:memcached.c 和thread.c文件。 Memcac 阅读全文
posted @ 2019-03-24 14:00 不学习就没有梦想 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 1 调试信息和调试原理 一般要调试某个程序,为了能清晰地看到调试的每一行代码、调用的堆栈信息、变量名和函数名等信息,需要调试程序含有调试符号信息。使用 gcc 编译程序时,如果加上 -g 选项即可在编译后的程序中保留调试符号信息。以下命令将生成一个带调试信息的程序 hello_world。 当然我们 阅读全文
posted @ 2019-02-28 14:30 不学习就没有梦想 阅读(1026) 评论(0) 推荐(0) 编辑
摘要: 客户端属性 客户端的状态保存在结构体 redisClient 中,下面给出redisClient的部分属性: fd 属性:客户端使用的套接字描述符,伪客户端的fd属性为 -1,普通客户端的fd属性为大于0的整数。 flags 属性:客户端状态。在主从服务器复制时,主服务器和从服务器互为客户端,RED 阅读全文
posted @ 2019-01-03 17:02 不学习就没有梦想 阅读(359) 评论(0) 推荐(0) 编辑
levels of contents