Redis(五):Redis是如何进行通信的

Redis采用TCP长连接与客户端及实例间通信,并使用RESP协议,包括RESP2.0和RESP3.0。RESP2.0定义了五种编码格式,用于表示命令、键值、错误等。RESP3.0增加了更多数据类型支持,提高效率和可读性。Redis6.0仅支持RESP3,不兼容RESP2.0。
摘要由CSDN通过智能技术生成

前言

上一篇介绍了 Redis 的单线程模型和多线程模型。这节开始介绍 Redis 各个实例之间以及与客户端之间是如何通信的。

Redis 与客户端之间,以及每个实例之间都是通过 TCP 长连接进行通信的,即使多个实例在同一台服务器上运行也是一样。

Redis 通过 TCP 长连接来实现高效的数据传输和低延迟的数据交互,同时也能够避免频繁的建立和关闭网络连接所带来的性能开销。

Redis 在 TCP 协议之上,还定义了 RESP 协议,即 REdis Serialization Protocol,Redis 序列化协议。

Redis 与客户端之间,以及各个 Redis 实例之间通信使用的基本上都是 RESP 协议(除了切片集群中各个节点使用的是 Gossip 协议)。在 Redis6.0 之前通常使用的都是 RESP2.0。接下来将开始详细介绍 RESP 协议。

RESP2.0

RESP 把交互内容分成了客户端请求服务端响应

  • 在客户端请求中,客户端会给 Redis 发送命令,以及要写入的键和值;
  • 在服务器端响应中,Redis 实例会返回读取的值、OK 标识、成功写入的元素个数、错误信息,以及命令。

这些交互内容还可以再进一步细分成七类:

  1. 命令:即针对不同数据类型的操作命令。例如对 String 类型的 SET、GET 操作等,这些命令就是代表操作语义的字符串。
  2. :键值对中的键,可以直接用字符串表示。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值