Redis 5通信协议解析以及手写一个Jedis客户端

在这里插入图片描述

Redis 5通信协议解析以及手写一个Jedis客户端


Redis的基础介绍与安装使用步骤:https://blog.csdn.net/qq_34002221/article/details/84963588
Redis的基础数据结构与使用: https://blog.csdn.net/qq_34002221/article/details/84981299
Redis核心原理:https://blog.csdn.net/qq_34002221/article/details/84996919
Redis 5 之后版本的高可用集群搭建:https://blog.csdn.net/qq_34002221/article/details/85011041
Redis 5 版本的高可用集群的水平扩展:https://blog.csdn.net/qq_34002221/article/details/85019752
Redis 5 集群选举原理分析:https://blog.csdn.net/qq_34002221/article/details/85042536


优秀博客:

Redis Protocol specification:https://redis.io/topics/protocol

通信协议(protocol):http://doc.redisfans.com/topic/protocol.html


redis的通信协议是什么?我的理解是双方约定了一种编码方式,客户端将要发送的命令进行编码,然后服务端收到后,使用同样的协议进行解码,服务端处理完成后,再次编码返回给客户端,客户端解码拿到返回结果,这样就完成了一次通信。如下图:

在这里插入图片描述

Redis 协议在以下三个目标之间进行折中:
  • 易于实现
  • 可以高效地被计算机分析(parse)
  • 可以很容易地被人类读懂
简单来说:简单,高效,易读。
来看一下redis的通信协议:
  • 客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 。
  • 客户端和服务器发送的命令或数据一律以 \r\n (CRLF)结尾。
  • 在这个协议中, 所有发送至 Redis 服务器的参数都是二进制安全(binary safe)的。
请求协议:
*<参数数量> CR LF
$<参数 1 的字节数量> CR LF
<参数 1 的数据> CR LF
...
$<参数 N 的字节数量> CR LF
<参数 N 的数据> CR LF
举个例子, 以下是一个命令协议的打印版本:
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值