首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Redis 命令执行过程()

今天我们来了解一下 Redis 命令执行的过程。...在之前的文章中《当 Redis 发生高延迟时,到底发生了什么》我们曾简单的描述了一条命令执行过程,本篇文章展示深入说明一下,加深读者对 Redis 的了解。...启动时监听socket Redis 服务器启动时,会调用 initServer 方法,首先会建立 Redis 自己的事件机制 eventLoop,然后在其注册周期时间事件处理器,最后在所监听的 socket...6 当此服务器是 master 时:aof 持久化失败时,或一次 bgsave 执行错误,且配置 bgsave 参数和 stop_writes_on_bgsave_err;禁止执行命令。...命令都有 } call 方法是 Redis执行命令的通用方法,它会处理通用的执行命令的前置和后续操作。

1.2K00
您找到你想要的搜索结果了吗?
是的
没有找到

Redis 命令执行过程(下)

在上一篇文章中《Redis 命令执行过程()》中,我们首先了解 Redis 命令执行的整体流程,然后细致分析了从 Redis 启动到建立 socket 连接,再到读取 socket 数据到输入缓冲区,...解析命令执行命令等过程的原理和实现细节。...接下来,我们来具体看一下 set 和 get 命令的实现细节和如何将命令结果通过输出缓冲区和 socket 发送给 Redis 客户端。 ?.... // 所有的 redis 命令都有 } ? setCommand 会判断set命令是否携带了nx、xx、ex或者px等可选参数,然后调用setGenericCommand命令。...在所有的 redisCommand 执行的最后,一般都会调用 addReply 方法进行结果返回,我们的分析也来到了 Redis 命令执行的返回数据阶段。

94120

Redis 命令执行过程

所以距离 Redis 的单机实现只差最后一步了,就是 Redis 是怎么处理 client 发来的命令并返回结果的,所以我们就仔细讨论一下 Redis 是怎么执行命令的。...阅读这篇文章你将会了解到: Redis 是怎么执行远程客户端发来的命令Redis client(客户端) Redis 是单线程应用,它是如何与多个客户端简历网络链接并处理命令的?...上文的例子中 Redis 就会去字典去查找 SET 这个命令对应的 redisCommand。redis执行 redisCommand 中命令的实现函数。...省略的参数基本涉及 Redis 集群管理的参数,在之后的文章中会继续讲解。...Redis Server (服务端) 上文是从 redisClient 的角度来观察命令执行,文章接下来的部分将会从 Redis 的代码层面,微观的观察 Redis 是怎么实现命令执行的。

1.1K10

Linux命令执行过程

一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd、type...命令查看: type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径 二.命令执行顺序 命令形态主要分为4类:alias别名命令、内部命令、hash缓存命令和外部命令。...中的命令 4.开启内部命令echo,再次执行echo “welcome to xi’an” 结论:说明内部命令优先于hash缓存命令和外部命令 5.定义别名alias echo=“hostname...”,如果echo 输出是hostname的内容时,则表明alias比内部命令优先 总结:命令执行顺序为alias——内部命令——hash缓存——外部命令 三.命令分类及查找基本命令 1.type command...-l 显示hash缓存 -d 清楚具体缓存命令路径 -r 删除所有命令路径 5.alias 定义别名 ualias取消别名 四.命令执行过程 ls命令执行过程: 下面进行简单分析: 1、shell

4.5K30

Linux命令执行过程

一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd、type...命令查看: type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径 二.命令执行顺序 命令形态主要分为4类:alias别名命令、内部命令、hash缓存命令和外部命令。...中的命令 4.开启内部命令echo,再次执行echo “welcome to xi’an” 结论:说明内部命令优先于hash缓存命令和外部命令 5.定义别名alias echo=“hostname...”,如果echo 输出是hostname的内容时,则表明alias比内部命令优先 总结:命令执行顺序为alias——内部命令——hash缓存——外部命令 三.命令分类及查找基本命令 1.type command...-l 显示hash缓存 -d 清楚具体缓存命令路径 -r 删除所有命令路径 5.alias 定义别名 ualias取消别名 四.命令执行过程 ls命令执行过程: 下面进行简单分析: 1、shell

4.4K30

Redis 优化执行命令的延时

Redis 是单线程的,客户端的命令请求在server中会被排队,按照顺序处理,如果队列长,命令执行结果的响应时间便会长 如果客户端想要快点得到执行结果,可以考虑一下,从发出命令请求到接收到结果,这个过程中有哪些地方可以优化...上图是这个过程的大致流程,从中我们可以找到几个优化方向 (1)减少网络I/O (2)缩短命令队列长度 (3)降低命令执行时间 具体操作建议 (1)用多参数的命令代替单参数的命令 例如 for (1...,一次性的添加这100个元素 下面这几组命令可供参考,在连续多次执行单参数命令时,尽量考虑多参数命令是否可行 (2)管道 管道机制是Redis减少网络耗时的重要方法,通过管道,把多个命令一起发给server...,不必每个命令单独请求,大大减少了网络的消耗 官方文档中给出了一个示例,执行1000次 ping 命令,使用管道后,快了5倍 (3)尽量避免耗时的命令 有些命令是相对耗时的,例如 ZINTERSTORE...,计算多个集合的交集,如果对多个大集合执行命令,计算时间将比较长 这种情况下,需要根据业务需求来考虑,看是否可以在比较空闲的时间段执行此类命令,或者能否保持集合中内容别太多,集合中是否有非必要的元素可以及时清除

2.2K60

走近源码:Redis如何执行命令

读一个客户端的命令 刚刚我们提到了readQueryFromClient函数,从名称就能看出来这个函数是用来从客户端读取命令的。下面来看看函数的具体实现。...然后根据读取的请求生成相应的Redis可以执行命令(包括参数)。不同的请求类型分别调用processInlineBuffer()和processMultibulkBuffer()函数。...如果返回的是C_ERR,则客户端会被销毁(比如执行QUIT命令)。 processCommand()函数会从Redis启动时加载的命令表中查找命令,然后检查命令执行权限。...进行完上面的各种条件判断之后,才可以真正开始调用call()函数执行命令执行命令并返回 call()函数的参数是client类型的,取出cmd成员进行执行。...这对于Redis的持久化来说非常重要,它可以知道这个命令影响了多少个key。命令执行完之后并没有结束,call函数还会做一些其他操作。例如记录日志,写AOF文件,向从节点同步命令等。

55830

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券