Redis 服务器及客户端流程

服务器流程

  1. 初始化全局

    • 创建一个RedisServer的结构,并且赋给默认值
    • 配置:端口,AOF选项,数据库个数,连接数等等
    • 基本数据结构,比如订阅发布的结构
    • 事件状态
    • 连接的客户端状态
    • Lua脚本运行环境
  2. 载入配置文件
    • 载入配置文件,主要是对上面全剧终的配置部分进行设定
  3. 创建daemon进程
    默认Redis是以后台线程启动的
  4. 初始化功能模块
    被初始化的主要功能模块:
    • 日志
    • 订阅发布
    • Lua脚本
    • 事件处理
    • 客户端处理
    • 完成这一步打印LOGO版本信息
  5. 载入数据
    用AOF或者RDB载入数据,这一步打印:DB loaded from disk
  6. 开始事件循环
    开始接受事件,完成这一步打印:The server is now ready to accept connections on port

客户端流程

为每个已连接的客户端维持一个RedisClient的结构主要包含如下信息:

  • 正在使用的数据库
  • 查询和回复缓存
  • 事务相关的数据结构
  • 阻塞相关的数据结构
  • 订阅发布相关的数据结构
  • 命令集指针
  • 统计选项

客户端执行一个命令的流程如下:

  • 通过Socket发送请求协议
  • Server通过读事件接受请求,且存入查询缓存
  • 从命令表找到相应的命令实现
  • 执行命令,且把执行结果存入到响应缓存中
  • 客户端写事件就绪的时候把相应缓存中的数据传回客户端
时间: 2024-10-31 09:33:43

Redis 服务器及客户端流程的相关文章

C#客户端Redis服务器的分布式缓存

介绍 在这篇文章中,我想介绍我知道的一种最紧凑的安装和配置Redis服务器的方式.另外,我想简短地概述一下在.NET / C#客户端下Redis hash(哈希类型)和list(链表)的使用. 在这篇文章主要讲到: 安装Redis服务器(附完整的应用程序文件设置) Redis服务器保护(配置身份验证) 配置服务器复制 从C#应用程序访问缓存 使用Redis ASP.NET会话状态 Redis 集合(Set).列表(List)和事务处理用法示例 说明附加的源(Redis Funq LoC MVC项

如何在CentOS 7上安装Redis服务器

大家好,本文的主题是 Redis,我们将要在 CentOS 7 上安装它.编译源代码,安装二进制文件,创建.安装文件.在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就是让 redis 运行的更加可靠和快速. Redis 服务器 Redis 是一个开源的多平台数据存储软件,使用 ANSI C 编写,直接在内存使用数据集,这使得它得以实现非常高的效率.Redis 支持多种编程语言,包括 Lua, C, Java, Python, Perl, PHP 和其他很多语言.

如何在 CentOS 7 上安装 Redis 服务器

如何在 CentOS 7 上安装 Redis 服务器 大家好,本文的主题是 Redis,我们将要在 CentOS 7 上安装它.编译源代码,安装二进制文件,创建.安装文件.在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就是让 redis 运行的更加可靠和快速. Redis 服务器 Redis 是一个开源的多平台数据存储软件,使用 ANSI C 编写,直接在内存使用数据集,这使得它得以实现非常高的效率.Redis 支持多种编程语言,包括 Lua, C, Java,

《Redis入门指南(第2版)》一2.3 Redis命令行客户端

2.3 Redis命令行客户端 还记得我们刚才编译出来的redis-cli程序吗?redis-cli(Redis Command Line Interface)是Redis自带的基于命令行的Redis客户端,也是我们学习和测试Redis的重要工具,本书后面会使用它来讲解Redis各种命令的用法. 本节将会介绍如何通过redis-cli向Redis发送命令,并且对Redis命令返回值的不同类型进行简单介绍. 2.3.1 发送命令 通过redis-cli向Redis发送命令有两种方式,第一种方式是将

怎么在Linux下安装配置Redis服务器

说明: 操作系统:CentOS 1.安装编译工具 yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils  patch perl 2.安装tcl组件包(安装Redis需要tcl支持) 下载:http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz 上传tcl8.6.1-src.tar.gz到/usr/loca

Redis的Python客户端redis-py安装使用说明文档_Redis

1.安装 redis-py是Redis key-value 数据库的 Python 接口,安装如下,后面我们会讲hiredis这个库 复制代码 代码如下: $ sudo pip install redis $ sudo pip install hiredis 2.入门 复制代码 代码如下: >>> import redis >>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0) >>

Oracle结果集缓存(Result Cache)--服务器、客户端、函数缓存

Oracle结果集缓存(Result Cache)--服务器.客户端.函数缓存 在11g中,Oracle提供了结果集缓存特性.该缓存是在共享内存中存储全部的结果集,如果一个查询SQL被执行,且它对应的结果集在缓存中,那么,该SQL的几乎全部开销都可以避免.这些开销包括,解析时间.逻辑读.物理读和任意的通常可能会遭遇的争用.但是,在实际的情况中,结果集缓存仅在少数的情况下是有效的,原因有如下几点: (1)有数据重叠的多个SQL会在缓存中保存冗余的数据. (2)对依赖对象的任何改变(包括对查询中引用

Redis的PHP客户端

Redis支持的客户端种类非常多,包括C.Java.PHP.Python等,本文主要介绍PHP客户端的安装和使用. Redis的客户端实际上担负了通过网络协议与Redis Server进行通信的过程,通信的过程必须遵循协议规范,让客户的调用更加符合特定语言的使用习惯.现有PHP客户端:rediska.phpredis.Predis.Redisent.这些可护短中,有纯PHP的实现方案,也有二进制版本的实现方案. 官方提供的PHP客户端列表如下: 特性比较 predis phpredis Redi

服务器与客户端的桌面虚拟化应用技巧

从硬件方面来说,你有几种可能的途径,包括重新规划老旧客户端系统的用途或者购买新的瘦客户端硬件.微软的Windows ThinPC产品就是针对重新规划用户而设计的,应该是用户不错的选择.瘦客户端设备的硬件厂商包括惠普,NComputing和Wyse.本文将侧重于介绍来自NComputing的L300设备. 部署虚拟桌面系统基础架构需求硬件和软件解决方案的互相配合.从软件方面来说,有很多厂商参与其中,包括思杰,红帽和VMware.购置了正确的服务器硬件,你还能使用微软的Windows Server2