背景
这篇文章是对redis章节的总结和学习笔记。
数据结构
主要包含两部分
1.数量/大小
参数的数量,有几个参数的意思
2.参数
包含大小和数据。
大小就是该参数的字节大小,有几个字节的意思。数据就是内容。
看到没有,其实最外层的也是大小和数据,比如1的数量/大小,其实就是几个参数的意思,这是大小;然后,数据就是参数。
举例子
格式说明
实际格式
是一个字符串,即按redis格式要求来的一个字符串。就跟我们平常老说,json格式的字符串一样。本质是字符串。格式的作用,只是用来给解析,然后得到自己需要的哪几个部分的哪几个数据,这就是所谓的服务器和客户端的通信协议。
响应为什么没有+加号?
因为很多客户端,比如java客户端,在得到服务器的响应数据的时候,已经解析了。也就是说,服务器返回的数据肯定是标准格式的,有+号,是+OK。后面没了,是因为客户端解析了,去掉了没用的信息,按自己需要的格式来显示。
如果想要获取服务器的原始返回数据,可以使用telnet nc等。
协议是什么,以及协议的作用
说白了,协议就是规定一个格式,比如服务器和客户端需要通信,其实就是互相发送字符串,但是怎么才能互相看得懂呢?就是给字符串规定一个格式。双方按这个格式来读数据,然后再解析数据。这就是通信的所有完整的流程。
具体流程是:
用户:输入普通的一般的字符串——客户端:解析为服务器需要的格式,然后发送给服务器——服务器:接收遵守redis服务器客户端通信协议(即redis协议)的数据,然后解析,最后返回响应数据(也是按指定格式)——客户端:接收数据,解析数据——用户:最终看到的数据(很可能被客户端篡改过)。
参考
redis运维