摘要:
文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star!
搜索关注微信公众号 码出Offer 领取各种学习资料!
深度理解Spring IOC(控制反转)
一、IOC概述
Inverse Of Controll即为控制反转,简称IOC 。
简单来说,IOC反转了依赖关系... 阅读原文
2020-07-13 13:59:11 阅读(2328) 评论(0)
摘要:
本文源码:GitHub·点这里 || GitEE·点这里
一、JTA组件简介
1、JTA基本概念
JTA即Java-Transaction-API,JTA允许应用程序执行分布式事务处理,即在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序对JTA的支持极大地增强了数据访问能力。
XA协议是数据库... 阅读原文
2020-07-13 12:03:05 阅读(2302) 评论(0)
摘要:
最近想写一个ssm整合的项目,所以从头开始配置。刚刚创建好项目,成功导入了项目所需要的依赖。分享一下从JDK配置到用idea新建一个maven项目所遇到的问题。
我配置安装了:JDK14.0.1,MySQL8.0.20,tomcat10.0.0-M7,maven3.6.3;IntelliJ IDEA ... 阅读原文
2020-07-13 10:32:12 阅读(2526) 评论(0)
摘要:
Redis通过MULTI、EXEC、WATCH、DISCARD等命令来实现事务功能。主要有以下三个阶段:
事务开始
MULTI命令的执行,标识着一个事务的开始。MULTI命令会将客户端状态的flags属性中打开REDIS_MULTI标识来完成的。
命令入队
当一个客户端切换到事务状态之后,服务器会根据这个客户... 阅读原文
2020-07-13 09:28:16 阅读(2411) 评论(0)
摘要:
在深入理解select、poll和epoll之间的区别之前,首先要了解什么是IO多路复用模型。
IO多路复用
简单来说,IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备就绪,它就通知该进程去进行IO操作。
详细的描述可以参考IO模型。select、poll和epoll都是提供I/O多路复用的解决... 阅读原文
2020-07-13 07:58:06 阅读(2319) 评论(0)
摘要:
什么是IO
在Linux世界里,一切皆文件。文件就是一串二进制流,不管是socket、FIFO、管道还是终端,对我们来说一切都是文件,一切都是流。在信息交换的过程中,我们都是对这些流进行数据的收发操作,简称为I/O操作(Input and Output)。
计算机里的所有流都是通过文件描述符(File Des... 阅读原文
2020-07-13 06:00:30 阅读(2686) 评论(0)
摘要:
Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作。
同步
同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。
1. 旧版本的执行步骤
从服务器向主服务器发送SYNC命令
主服务器执行BGSAVE命令,生成RDB文件,并使用一个缓冲区记录从现... 阅读原文
2020-07-13 00:30:08 阅读(2476) 评论(0)
摘要:
Redis官方提供了两种数据持久化的方式,分别是:RDB和AOF。今天我们来讨论一下这两种持久化方式的区别。
RDB
基本原理:RDB持久化主要是通过SAVE和BGSAVE两个命令对Redis数据库中当前的数据做snapshot并生成rdb文件来实现的。其中SAVE是阻塞的,BGSAVE是非阻塞的,通过for... 阅读原文
2020-07-12 22:34:01 阅读(2308) 评论(0)
摘要:
Redis一共支持5种数据结构,hash是其中的一种,在hash扩容的时候采用的是渐进式rehash的方式。要想深入理解渐进式rehash,首先要了解以下Redis中hash的数据结构。
哈希表节点
typedef struct dictEntry {
void *key; // 键
unio... 阅读原文
2020-07-12 20:53:02 阅读(2541) 评论(0)
摘要:
Key的过期策略
Redis的Key有3种过期删除策略,具体如下:
1. 定时删除
原理:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作
优点:能够很及时的删除过期的Key,能够最大限度的节约内存
缺点:对CPU时间不友好,如果过期的Key... 阅读原文
2020-07-12 20:10:01 阅读(3388) 评论(0)