Redis远程字典服务器(11)—— redis客户端介绍

一,基本介绍

  1. 前面学习的主要是各种Redis的基本操作/命令,都是再Redis命令行客户端,手动执行的,但是这种方式不是我们日常开发中主要的形式
  2. 更多的时候,是使用Redis的api,来实现定制化的Redis客户端程序,来进一步操作Redis服务器(简单来说就是:用程序来操作Redis服务器)
  3. MySQL也是如此,会用C++代码结合MySQL的api头文件来操作MySQL

Redis的命令行客户端,或者第三方图形化客户端,本质上都属于是"通用的客户端程序",相比之下,我们在工作中更希望使用到的是"专用的","定制化"的客户端程序

Redis能支持很多很多的编程语言,但是往上大部分都是以Java为主,但是由于本人是主攻C++方向的,所以后面的客户端代码编写,我们以C++语言为主哈~

我们前面也说过,Redis客户端和服务器是以网络通信的方式进行数据交互的:

  1. 网络通信过程中,会用到很多的"协议",比如数据链路层的以太网,网络层的IP协议,传输层的TCP/UDP协议,这些协议是固定好的,是在系统内核或者驱动程序中实现,咱们程序员只能选择,不能修改
  2. 而对于应用层,虽然业界有很多成熟的应用层协议,比如HTTP和HTTPS等,但是更多的时候,都会"自定义"应用层协议,Redis的应用层协议,就是自定义的协议(Redis的传输层还是TCP )
  3. 客户端按照这里的应用层协议发送请求,服务器按照这个协议进行解析,再按照这个协议构造响应,客户端这个响应(这个操作之所以能完成,就是因为开发客户端的人,和开发服务器的人,都知道 协议的具体细节)
  4. 咱们作为第三方,要想开发Redis客户端,也就需要知道Redis的应用层协议,而这个协议,官网是就有完整的介绍:Redis serialization protocol specification | Docs

二,认识RESP

Redis serialization protocol specification | Docs

Redis自定义应用层的协议名称,就叫做"RESP",全称为:

​​​​

总结:搬出上述内容只是为了理解RESP,了解Redis底层的通信原理,不影响后续代码的编写,并且我们不用真的按照文档里的协议,去解析/构造字符串,因为这套协议早就已经公开了,已经有很多大佬实现了这套协议的解析/狗仔,我们只需要使用这些大佬们提供的库,就可以比较简单方便地来完成和Redis服务器通信地操作了(正所谓,站在巨人的肩膀上)

Redis serialization protocol specification | Docs

相关推荐
冰茶丿3 小时前
状态机在嵌入式系统中的应用:不只是switch-case这么简单
数据库·嵌入式硬件·mongodb
AIHR数智引擎3 小时前
15%对撞40%:WEF白皮书里的AI组织隐忧
数据库·人工智能·经验分享·职场和发展·aihr
记忆停留w3 小时前
Celery+Redis 分布式异步任务队列工程落地业务逻辑
大数据·人工智能·redis·分布式·缓存·架构·wpf
卓怡学长3 小时前
w261springboot基于web学校课程管理系统
java·数据库·spring boot·spring·intellij-idea
嘉泰姆半导体官方3 小时前
CXAR41337C 双通道数字音频功放 | 2×20W | EQ+DRC | I²S | MCLK-Less - 嘉泰姆电子
前端·javascript·数据库
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题 第169题】【07_Redis篇】第5题:如何保证缓存一致性?
java·redis·延迟双删·缓存一致性·双写一致性
不坑老师3 小时前
怎么在Word中制作汉字书写笔顺——不坑盒子汉字笔顺步骤在小学低段识字教学中的应用
前端·数据库·人工智能·word·excel·office
柠石榴4 小时前
远程连接校内服务器 ssh
运维·服务器·ssh
苍狼唤4 小时前
SQL+C# 增删改查(练习)
数据库·sql·c#
2301_800256114 小时前
第七章 空间存储与索引 知识点梳理-2
数据库·sql·oracle