redis-分布式锁 分布式锁优化过程、Redisson,AOP实现缓存一 分布式锁优化过程1 本地锁的局限性我们学习过synchronized及lock锁,这些锁都是本地锁。接下来写一个案例,演示本地锁的问题 1.1 编写测试代码在TestController中添加测试方法 1234567public interface RedisTestService { /** * redis的锁测试d 2022-03-23 redis redis
Docker安装FastDfs和上传图片入门小程序 Docker安装FastDfs和上传图片入门小程序 1.搭建FastDfs拉取镜像 1docker pull morunchang/fastdfs 运行tracker 1docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh –net=host 和虚拟机使用同一套网络 运行storage 1doc 2022-03-19 docker docker
MyCat入门配置详解和常见九种数据分片算法 MyCat入门配置详解和常见九种数据分片算法第一节 分库分表概述1、为什么要拆分?①MySQL 实例内部结构[1]单一架构 [2]复制架构尽管搭建了复制架构,但是实际上从逻辑上来说仍然只有一个 db_hr 数据库。 ②性能瓶颈MySQL 工作过程中的性能瓶颈主要来自于下面三个方面(同等硬件条件下): 数据存储量:单表 1000 万条数据达到极限;500 万条开始性能明显下降;300 万条开始就 2022-03-15 mysql mysql
MySQL-复制架构 MySQL 复制架构第一节 概述1.1 数据拓展 热备份:数据库在运行的过程中,对数据进行备份操作。相对的,还有冷备份,冷备份需要停机,然后对数据进行备份操作。 多活:所谓的多活,就是让数据库机器节点会存在多个,避免单点情况的出现。 故障切换:当一台数据库物理机出现异常状况时,可以自动的切换到其他物理机上。 读写分离:当存在多台数据库物理机,将读写操作分别交给不同的机器完成。 负载均衡:假设当存在 2022-03-14 mysql mysql
MySQL-SQL优化 SQL 优化第一节 准备数据1、修改配置为了能够看出 SQL 优化前后的性能差异,我们需要较为大量的数据。生成这些数据我们需要用到 MySQL 中的自定义函数。 但是 MySQL 默认关闭了自定义函数功能,所以我们需要通过修改配置文件来开启这项功能。 12# 使用 vim 编辑器打开配置文件vim /etc/my.cnf 在配置文件末尾增加如下内容: 12# 设置为 1 表示开启这项功能log_ 2022-03-14 mysql mysql
MySQL-索引原理 索引的原理1、数据页假设有一张数据库表: emp_id(主键) emp_age(非主键) emp_name(非主键) 1 21 tom 2 22 jerry 3 23 bob 4 24 harry 5 25 lily …… …… …… 对于 InnoDB 存储引擎来说,最小的存储单位就是:页。那么存放原始数据的页就称为数据页。 一个数据页默认的大小是:16KB 2022-03-14 mysql mysql
MySQL-架构引擎 MySQL 逻辑架构1、总述和其它数据库有所不同,MySQL 的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,『插件式』的『存储引擎架构』将查询和其它的系统任务以及数据的存储提取相分离。 这种架构可以根据业务的需求和实际需要选择合适的存储引擎。 2、连接层最上层是一些客户端和连接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 TCP/IP 的通 2022-03-14 mysql mysql
JUC学习笔记(五)Lock底层原理探究 Lock 底层原理探究第一节 JMMTIP 为什么要学这个 JMM? 答:为了理解 volatile 关键词。 为什么要学这个 volatile ? 答:因为 volatile 是后面整个技术体系的基石之一。 1、名词解释JMM 是 Java Memory Model 的缩写,意思是:Java 内存模型。 2、产生背景①高速缓存现代计算机 CPU 的运算处理能力比内存 I/O 读写能力高 2022-03-10 JUC JUC
JUC学习笔记(四)特定场所解决方案 特定场景解决方案第一节 CountDownLatch效果:指定一个操作步骤数量,在各个子线程中,每完成一个任务就给步骤数量 - 1;在步骤数量减到0之前,CountDownLatch 可以帮我们把最后一步操作抑制住(阻塞),让最后一步操作一直等到步骤被减到 0 的时候执行。 1、班长锁门有六名同学在值日,班长负责锁门。班长必须确保所有同学都离开教室再锁门。 12345678910111213141 2022-03-10 JUC JUC
JUC学习笔记(三)Lock API控制多线程 使用 Lock API 控制多线程第一节 HelloWorld1、卖票1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162public class Demo01HelloWorld { // 声明成员变量维 2022-03-08 JUC JUC