缓存系统
一 铭
公众号:大数据架构师修行之路
展开
-
通过gdb来调试和观察redis源码的运行
概述本文介绍如何通过gdb来调试redis的源代码。相对于只是查看源码,通过gdb还能够在实际场景中观察代码如何运行,内存如何变化,这对于理解redis-server的运行机制非常有必要。 在进行redis-server一般命令的运行机制调试时,不需要你懂c/c++编程,只需要知道gdb的一些基本命令就可以了。gdb介绍通过gdb对redis-server进行调试时,需要知道一些...原创 2018-09-07 07:25:20 · 3707 阅读 · 0 评论 -
twemproxy0.4原理分析-内存管理原理分析
概述本文分析twemproxy0.4的内存管理机制。不像java,go等语言c/c++代码需要自己维护内存,内存管理对于c/c++后台服务来说非常重要,一般来说好的c/c++后台服务都会考虑编写自己的内存管理模块,比如: nginx, memcached等。最简单的内存管理模型是:建立两个队列,一个是正在使用的队列,一个是空闲队列。常用的数据结构(或对象)使用完后把它放入到空闲队列中,而当要...原创 2018-12-15 10:09:12 · 493 阅读 · 0 评论 -
twemproxy0.4原理分析-消息处理过程原理分析
概述本文讲述了twemproxy0.4的消息处理流程。通过本文可以了解到twemproxy0.4的消息处理全流程。流程总体描述作为一个代理服务器twemproxy0.4,首先要接收来自client的了解,和client端建立好连接;然后,需要后后端的服务器建立连接,并把从client端接收到的连接发送给后端服务器,然后把服务器端的返回信息通过和client的连接发送给client。最后完成整...原创 2019-01-05 12:08:54 · 627 阅读 · 0 评论 -
twemproxy0.4原理分析-批量操作(mset,hset等)的实现原理
概述本文描述twemproxy0.4对批量消息处理命令的实现原理。这些命令例如:mset,mget等。引言当客户端发送的是批处理命令(如:mset,hset等)时,可能出现同一条命令的多个key分别发送到多个后端服务器的情况。例如如下命令:mget key1 key2 key3假如后端的redis集群有两台redis服务器,则可能出现以下key分配情况:key1 => re...原创 2019-01-05 15:50:26 · 892 阅读 · 0 评论