深入分析redis内幕(一)
学习一个技术,只是纯粹在泛泛而学的话,其实没有多大意思,很容易忘记的,最好的方式就是进行梳理和实践分析,在深度的思考和实践中吃透!
1 | 本文让我们来探索一下,在单机模式下,从跟server建立连接、到执行一句get/set命令,是怎么执行的。 |
一、客户端是如何跟redis server建立连接的?
我们思考一下,平时我们写的业务系统,是如何跟服务器端的redis server建立连接的?
拿 Java 的业务系统来说,大致步骤如下:
1、引入对应的客户端 jar 包
常见的redis 客户端包括 jedis、redisson、lettuce
拿jedis为例,建立好maven工程后,引入对应的pom依赖:
1 | <dependency> |
2、进行对应的redis相关配置
要想跟redis建立连接,肯定需要知道redis server的对应配置信息吧?
像服务端的ip地址、对应redis的端口号、密码等信息你得知道吧,不然咋跟远方的redis服务建立起网络连接!
1 | redis: |
3、socket 概念
两个设备之间建立网络连接,双方都会基于各自的某个端口建立对应的socket套接字。
然后基于这个socket连接通信链路来发送和传递数据消息。
4、总结一下
1)我们的业务系统这边,通常会使用一个客户端比如说jedis,通过tcp三次握手,跟服务器那边的redis server建立好网络连接。
2)建立连接时,各自会创建一个socket监听对应的端口,以后的数据传输都是通过该socket端口来进行发送。
3)客户端现在要请求某条数据,那么此时就通过socket通信链路发送给server端
4)server端收到客户端请求后,进行一些处理,然后返回响应数据。
这篇文章讲述了建立连接时业务系统(客户端)这边会做的事情。
下一篇文章来讲下redis server端会发生什么!