置顶
【原创】 TCP三次握手执行过程
04 03 2022
1、 首先,服务端和客户端都是处于CLOSED状态的,然后服务端启动,监听端口,状态变为LISTEN(监听)状态
2、客户端为了请求资源,发送连接,发送同步序列号SYN,此时客户端就变成了SYN-SEND状态
3、服务端接收到客户端请求之后,发送SYNACK,然后服务端状态就变成SYN-RCVD状态
4、客户端接收到信息之后,再次发送ACK,然后变成ESTABLISHED(已确认)状态,服务端接收到返回信息后,状态也变成ESTABLISHED(已确认)状态
置顶
【原创】 Redis的三种集群方案
05 03 2022

前言

一、主从复制模式

基本原理

主从复制模式包含一个主数据库实例(master),一个或多个从数据库实例(slave)

客户端可以对主数据库进行读写操作,对从数据库只能进行读操作,主数据库写入的数据会实时自动同步给从数据库。
具体的步骤为:

  1. slave启动后,向master发送SYNC命令,master接收到SYNC命令后通过bgsave命令保存快照(RDB持久化),并使用缓冲区记录保存快照这段时间内执行的写命令。
  2. maste...
置顶
【原创】 事务具有4个属性
16 03 2022

事务具有 4 个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为 ACID 特性。
Atomicity(原子性):一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复到事务开始前的状态,就像这个事务从来没有执行过一样。
Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。完整性包括外键约束、应用定义的等约束不会被破坏。
Isolation(隔离性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

置顶
【原创】 linux后台运行程序
16 03 2022

1、java -jar demo.jar &
该命令依旧会在控制台输出启动过程,但按下Ctrl+C和关闭终端('关闭终端不是关闭服务器')时,程序依然运行,并不会关闭。输出日志文件,在命令后面加上 > 文件名即可。即:java -jar demo.jar & > demo.log
2、nohup java -jar demo.jar &
该命令运行不打印启动过程,按下Ctrl+C和关闭终端时,程序依然运行。指定日志文件命令为 nohup java -jar demo.jar >> demo.log &.
3、ps aux|grep jar文件名字.jar
关闭后台运行的java程序
得到该java程序的进程号为1631,使用kill命令关闭该进程即可。
kill -9 1631

置顶
【原创】 gitee上传
16 03 2022

git add . (注:别忘记后面的.,此操作是把Test文件夹下面的文件都添加进来)

git commit -m "提交信息" (注:“提交信息”里面换成你需要,如“first commit”)

git push -u origin master (注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)