这个类用来建立与服务端的连接,使用4. 实验getConnection()
方法,将会交付一个redisSocket,使用这个Socket可以直接向server发送和接受数据 。
import { RedisClient, RedisSocket } from "./src/Client";const Redis = new RedisClient({host: "localhost",port: 6379});Redis.getConnection().then((socket: RedisSocket) => {socket.set("Mushroom", "Cookie");socket.set("Mici", "Icmi").then( () => {socket.get("Mushroom").then((data: Buffer) => {console.log(data.toString());socket.close();})});})
这里使用RedisClient建立与本地redis的连接,随后通过getConnection()获取到连接实例,并通过这个连接实例设置了两个数据,以及获取了一数据并打印了出来 。
> pnpm dev> $6 // 这里的$6你也许会感到奇怪,不过我们很快就会知道这是什么> Cookie
5. wireshark 抓包分析
文章插图
这一次请求就是一整个完整的TCP流程,在这其中TCP保证数据的可靠传输,而RESP(REdis Serialization Protocol)把数据封装成一个fragment段,发送到下面的TCP服务端相应的时候也是如此,会把数据封装起来发送到TCP中转发出去 。
看看发送方的RESP

文章插图
看看响应的RESP

文章插图

文章插图
所以知道了吗?没错,6其实就是长度那一部分强行转化为字符串的结果,所以在现在很多流行的redis客户端中如ioredis都对RESP报文做了非常完备的解析,这使得开发者能够非常丝滑的与redis服务端交互 。(感谢这些开发者做的一切!)
6. 杂与代码Github 仓库
希望大家都对世界保持好奇!
经验总结扩展阅读
- 之七 2流高手速成记:基于Dubbo&Nacos的微服务简要实现
- 百雀羚的修饰乳用法是什么?
- 眉粉适合当修容使用吗?
- 明日之后怎么用电脑玩(明日之后如何在电脑玩)
- Docker基础和常用命令
- 【深入浅出 Yarn 架构与实现】1-1 设计理念与基本架构
- 怎么用一句话暗示小人 怎样发朋友圈警告小人
- 感谢领导良苦用心 感谢领导的话简单朴实
- 华为mate40手机怎么截屏_华为mate40截图功能怎么使用
- 黑莓q5用安装微信的方法a 用黑莓自带的印象笔记手敲的 看不懂的宝宝们在私聊我吧