个人简介

Echo Blog


江湖无名 安心练剑
  • Redis Learn-11-01-命令请求的执行过程
    命令去请求的执行过程 一个命令请求从发送到获得回复的过程中, 客户端和服务器需要完成一系列操作。 举个例子, 如果我们使用客户端执行以下命令: redis> SET KEY VALUE OK 那么从客户端发送 SET KEY VALUE 命令到获得回复 OK 期间, 客户端和服务器共需要执行以下操作: 客户端向服务器发送命令请求 SET KEY VALUE ...
    2018-12-12 03:35:23 | Redis
  • Redis Learn-10-02-client 客户端创建和关闭
    客户端的创建和关闭 创建普通客户端 通过网络连接与服务器进行连接的客户端是普通客户端,使用connect函数连接服务器的时候,服务器会调用事件处理器,为客户端创建相应的客户端状态,并将这个新的客户端状态添加到服务器状态结构clients链表的末尾。 例子 c1,c2正在连接服务器,c3是一个新的普通客户端,连接到服务器: 关闭普通客户端 关闭原因 普通客户端关闭的原因: ...
    2018-12-12 03:35:23 | Redis
  • Redis Learn-10-client 客户端
    客户端属性 客户端状态包含的属性可以分为两类: 一类是比较通用的属性,这些属性很少与特定功能相关, 无论客户端执行的是什么工作, 它们都要用到这些属性。 另外一类是和特定功能相关的属性,比如操作数据库时需要用到的 db 属性和 dictid 属性,执行事务时需要用到的 mstate 属性,以及执行 WATCH 命令时需要用到的 watched_keys 属性,等等。 本章将对客户端状...
    2018-12-12 03:35:23 | Redis
  • Redis Learn-09-02-时间事件
    分类 时间事件分为两类: 定时事件 周期事件 一个时间事件包括三要素:id,when,timeproc(时间事件处理器) 时间事件处理器实现: 服务器将所有的时间事件放在一个无序链表中,运行时,遍历整个链表,调用到时间的事件对应的处理器。 正常情况下,服务器只有serverCron一个时间事件,所以采用无序链表不会影响性能。 serverCron 函数 工作主要包括: ...
    2018-12-12 03:35:23 | Redis
  • Redis Learn-09-文件事件
    文件事件 Redis 基于 Reactor 模式开发了自己的网络事件处理器: 这个处理器被称为文件事件处理器(file event handler): 文件事件处理器使用 I/O 多路复用(multiplexing)程序来同时监听多个套接字, 并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(writ...
    2018-12-12 03:35:23 | Redis
  • Redis Learn-09-00-事件
    概述 redis 内部有一个小型的事件驱动,它和 libevent 网络库的事件驱动一样,都是依托 I/O 多路复用技术支撑起来的。 利用 I/O 多路复用技术,监听感兴趣的文件 I/O 事件,例如读事件,写事件等,同时也要维护一个以文件描述符为主键,数据为某个预设函数的事件表,这里其实就是一个数组或者链表。 当事件触发时,比如某个文件描述符可读,系统会返回文件描述符值,用这个值在事件...
    2018-12-12 03:35:23 | Redis
  • Redis Learn-08-持久化相关的性能问题
    fork操作 当Redis做RDB或AOF重写时,一个必不可少的操作就是执行fork操作创建子进程,对于大多数操作系统来说fork是个重量级错误。 虽然fork创建的子进程不需要拷贝父进程的物理内存空间,但是会复制父进程的空间内存页表。 例如对于10GB的Redis进程,需要复制大约20MB的内存页表,因此fork操作耗时跟进程总内存量息息相关,如果使用虚拟化技术,特别是Xen虚拟 机...
    2018-12-12 03:35:23 | Redis
  • Redis Learn-08-mixed 混合模式持久化
    持久化的必要性 我们都知道 Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。 Redis 的持久化机制有两种,第一种是快照,第二种是 AOF 日志。 快照是一次全量备份,AOF 日志是连续的增量备份。 快照是内存数据的二进制序列化形式,在存储上非常紧凑,而 AOF ...
    2018-12-12 03:35:23 | Redis