深入分析redis内幕(一)

学习一个技术,只是纯粹在泛泛而学的话,其实没有多大意思,很容易忘记的,最好的方式就是进行梳理和实践分析,在深度的思考和实践中吃透!

1
2
本文让我们来探索一下,在单机模式下,从跟server建立连接、到执行一句get/set命令,是怎么执行的。
通过剖析这些底层内核,加深我们对redis的理解!

一、客户端是如何跟redis server建立连接的?

我们思考一下,平时我们写的业务系统,是如何跟服务器端的redis server建立连接的?

拿 Java 的业务系统来说,大致步骤如下:

1、引入对应的客户端 jar 包

常见的redis 客户端包括 jedis、redisson、lettuce

拿jedis为例,建立好maven工程后,引入对应的pom依赖:

1
2
3
4
5
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>

2、进行对应的redis相关配置

要想跟redis建立连接,肯定需要知道redis server的对应配置信息吧?

像服务端的ip地址、对应redis的端口号、密码等信息你得知道吧,不然咋跟远方的redis服务建立起网络连接!

1
2
3
4
redis:
host: 192.xx.xx.xx // 对应ip地址
password: // redis对应密码
port: 6379 // redis对应的服务端口

3、socket 概念

两个设备之间建立网络连接,双方都会基于各自的某个端口建立对应的socket套接字。

然后基于这个socket连接通信链路来发送和传递数据消息。

4、总结一下

1)我们的业务系统这边,通常会使用一个客户端比如说jedis,通过tcp三次握手,跟服务器那边的redis server建立好网络连接。

2)建立连接时,各自会创建一个socket监听对应的端口,以后的数据传输都是通过该socket端口来进行发送。

3)客户端现在要请求某条数据,那么此时就通过socket通信链路发送给server端

4)server端收到客户端请求后,进行一些处理,然后返回响应数据。

这篇文章讲述了建立连接时业务系统(客户端)这边会做的事情。

下一篇文章来讲下redis server端会发生什么!