Mysql 优化
Mysql 优化慢查询慢查询日志可以帮我们找到执行慢的 SQL。 可以通过以下命令查看慢查询日志是否开启: 1234567mysql> show variables like '%slow_query_log';+----------------+-------+| Variable_name | Value |+----------------+-------+| slow_query_log | ON |+----------------+-------+1 row in set (0.02 sec) 启停慢查询日志开关: 12345# 开启慢查询日志mysql > set global slow_query_log='ON';# 关闭慢查询日志mysql > set global slow_query_log='OFF'; 查看慢查询的时间阈值: 1234567mysql> show variables like '%long_query_time%';+--...
Mysql 事务
Mysql 事务 不是所有的 Mysql 存储引擎都实现了事务处理。支持事务的存储引擎有:InnoDB 和 NDB Cluster。不支持事务的存储引擎,代表有:MyISAM。 用户可以根据业务是否需要事务处理(事务处理可以保证数据安全,但会增加系统开销),选择合适的存储引擎。 事务简介事务概念“事务”指的是满足 ACID 特性的一组操作。事务内的 SQL 语句,要么全执行成功,要么全执行失败。可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。 ACIDACID 是数据库事务正确执行的四个基本要素。 原子性(Atomicity) 事务被视为不可分割的最小单元,事务中的所有操作要么全部提交成功,要么全部失败回滚。 回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。 一致性(Consistency) 数据库在事务执行前后都保持一致性状态。 在一致性状态下,所有事务对一个数据的读取结果都是相同的。 隔离性(Isolation) 一个事务所做的修改在最终提交以前,对其它事务是不可见的。 持久性(Durab...
6.Spring 安全
Spring 集成 章节主要针对:Spring 与第三方框架、库集成。如:Cache、Scheduling、JMS、JMX 等。 📖 内容 Spring 安全 📚 资料 官方 Spring 官网 Spring Framework 官方文档 Spring Github 书籍 《Spring In Action》 教程 《小马哥讲 Spring 核心编程思想》 geekbang-lessons 跟我学 Spring3 🚪 传送◾ 💧 钝悟的 IT 知识图谱 ◾ 🎯 我的博客 ◾
3.Spring Web
Spring Web 章节主要针对:Spring 在 web 领域的应用。如:Spring MVC、WebSocket 等。 📖 内容 SpringWeb 综述 SpringWeb 应用 DispatcherServlet Spring 过滤器 Spring 跨域 Spring 视图 SpringBoot 之应用 EasyUI 📚 资料 官方 Spring 官网 Spring Framework 官方文档 Spring Github 书籍 《Spring In Action》 教程 《小马哥讲 Spring 核心编程思想》 geekbang-lessons 跟我学 Spring3 🚪 传送◾ 💧 钝悟的 IT 知识图谱 ◾ 🎯 我的博客 ◾
Spring 其他
Spring 其他📖 内容 Spring4 升级 SpringBoot 之 banner SpringBoot 之 Actuator 📚 资料 官方 Spring 官网 Spring Framework 官方文档 Spring Github 书籍 《Spring In Action》 教程 《小马哥讲 Spring 核心编程思想》 geekbang-lessons 跟我学 Spring3 🚪 传送◾ 💧 钝悟的 IT 知识图谱 ◾ 🎯 我的博客 ◾
Spring AOP
Spring AOPAOP 概念什么是 AOPAOP(Aspect-Oriented Programming,即 面向切面编程)与 OOP( Object-Oriented Programming,面向对象编程) 相辅相成,提供了与 OOP 不同的抽象软件结构的视角。 在 OOP 中,我们以类(class)作为我们的基本单元,而 AOP 中的基本单元是 Aspect(切面) 术语Aspect(切面)aspect 由 pointcount 和 advice 组成, 它既包含了横切逻辑的定义, 也包括了连接点的定义. Spring AOP 就是负责实施切面的框架, 它将切面所定义的横切逻辑织入到切面所指定的连接点中.AOP 的工作重心在于如何将增强织入目标对象的连接点上, 这里包含两个工作: 如何通过 pointcut 和 advice 定位到特定的 joinpoint 上 如何在 advice 中编写切面代码. 可以简单地认为, 使用 @Aspect 注解的类就是切面. advice(增强)由 aspect 添加到特定的 join point(即满足 point cut 规则的...
5.Spring 集成
Spring 集成 章节主要针对:Spring 与第三方框架、库集成。如:Cache、Scheduling、JMS、JMX 等。 📖 内容 Spring 集成缓存中间件 Spring 集成定时任务中间件 Spring 集成 Dubbo 📚 资料 官方 Spring 官网 Spring Framework 官方文档 Spring Github 书籍 《Spring In Action》 教程 《小马哥讲 Spring 核心编程思想》 geekbang-lessons 跟我学 Spring3 🚪 传送◾ 💧 钝悟的 IT 知识图谱 ◾ 🎯 我的博客 ◾
Java 容器之 Queue
Java 容器之 QueueQueue 简介 Queue 接口Queue 接口定义如下: 1public interface Queue<E> extends Collection<E> {} AbstractQueue 抽象类AbstractQueue 类提供 Queue 接口的核心实现,以最大限度地减少实现 Queue 接口所需的工作。 AbstractQueue 抽象类定义如下: 123public abstract class AbstractQueue<E> extends AbstractCollection<E> implements Queue<E> {} Deque 接口Deque 接口是 double ended queue 的缩写,即双端队列。Deque 继承 Queue 接口,并扩展支持在队列的两端插入和删除元素。 所以提供了特定的方法,如: 尾部插入时需要的 addLast(e)、offerLast(e)。 尾部删除所需要的 rem...
Redis 事务
Redis 事务 Redis 仅支持“非严格”的事务。所谓“非严格”是指:Redis 事务保证“全部执行命令”;但是,Redis 事务“不支持回滚”。 关键词:事务、ACID、MULTI、EXEC、DISCARD、WATCH Redis 事务简介什么是 ACIDACID 是数据库事务正确执行的四个基本要素。 原子性(Atomicity) 事务被视为不可分割的最小单元,事务中的所有操作要么全部提交成功,要么全部失败回滚。 回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。 一致性(Consistency) 数据库在事务执行前后都保持一致性状态。 在一致性状态下,所有事务对一个数据的读取结果都是相同的。 隔离性(Isolation) 一个事务所做的修改在最终提交以前,对其它事务是不可见的。 持久性(Durability) 一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。 可以通过数据库备份和恢复来实现,在系统发生奔溃时,使用备份的数据库进行数据恢复。 一个支持事务(Transa...
Redis 脚本
Redis 脚本 Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。 关键词:Lua 为什么使用 LuaLua 是一种轻量小巧的脚本语言,用标准 C 语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 在 Redis 中,执行单一命令是原子性操作,所以不会出现并发问题。但有的业务场景下,需要执行多个命令,同时确保不出现并发问题,这就需要用到 Lua 脚本了。 Redis 执行 Lua 是原子操作。因为 Redis 使用串行化的方式来执行 Redis 命令, 所以在任何特定时间里, 最多都只会有一个脚本能够被放进 Lua 环境里面运行, 因此, 整个 Redis 服务器只需要创建一个 Lua 环境即可。 由于,Redis 执行 Lua 具有原子性,所以常被用于需要原子性执行多命令的场景。 Redis 脚本命令 命令 说明 EVAL EVAL 命令为客户端输入的脚本在 Lua 环境中定义一个函数, 并通过调用这个函数来执行脚本。 EVALSHA EVALSHA 命令...