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

相关推荐
栗子~~5 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
wangqiaowq5 小时前
windows下nginx的安装
linux·服务器·前端
星星也在雾里6 小时前
PgBouncer 解决 PostgreSQL 连接数超限 + 可视化监控
数据库·postgresql
cen__y7 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
雨辰AI7 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
长城20247 小时前
关于MySql的ONLY_FULL_GROUP_BY问题
数据库·mysql·聚合列
常常有8 小时前
MySQL 底层执行原理:输入SQL语句到两阶段提交
数据库·sql·mysql
Mr. zhihao8 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
m0_748839498 小时前
利用天正暖通CAD快速掌握风管数量统计的方法
数据库
随身数智备忘录8 小时前
什么是设备管理体系?设备管理体系包含哪些核心模块?
网络·数据库·人工智能