JAVA开发人员出去面试,基本是必问Redis。
redis分为客户端和服务端两个部分,这次就是通过手写一个Redis的客户端,让你掌握里面的知识。
RESP协议
RESP协议是Redis客户端和服务端之间的通讯协议,这是它的官方文档:https://redis.io/topics/protocol。
我就是根据这个协议来实现客户端的。
![](https://i-blog.csdnimg.cn/blog_migrate/87fc1098bb089ea46e27f81caafba55f.webp?x-image-process=image/format,png)
协议几个要点:
1、客户端和服务端通过TCP进行数据交互
2、 传输的数据遵循RESP协议,如下:
每一段数据通过 进行分隔,每段数据通过一个特殊标志作为开头
* 代表数组
$ 多行字符串
+ 单行信息
- 错误信息
: 整型数字
不能理解没关系,看完我的示例,你自己多练几把就明白了。
客户端步骤1 - 建立TCP连接
![](https://i-blog.csdnimg.cn/blog_migrate/93335284295ac984d1320ce8f93ecd86.webp?x-image-process=image/format,png)
java socket网络编程
客户端步骤2 - 实现set/get命令
![](https://i-blog.csdnimg.cn/blog_migrate/4937ea7dbc37317c2b1b292e0328ccf3.webp?x-image-process=image/format,png)
不同的命令不同的报文-resp协议
客户端步骤3 - 测试
![](https://i-blog.csdnimg.cn/blog_migrate/7b828ef5dffb2d1a8a3196aa6ba6c17c.webp?x-image-process=image/format,png)
最简客户端
重要的是思路,希望对你有启发。这个java学习(q-u-n): 678-241-563 期待大家一起进q-u-n交流讨论,讲实话还是一个非常适合学习的地方的。各种入门资料啊,进阶资料啊,框架资料啊 等等
JAVA学习不易,不要好高骛远,需要沉下心系统性的学习