mysql架构 极客时间mysql45讲总结https://time.geekbang.org/ https://blog.csdn.net/junmoxi/article/details/85044982 https://blog.csdn.net/cph691647465/article/details/118677935 mysql基础架构 mysql的基本架构示意图 客户端—>连接器—>查询缓 2022-05-18 mysql #mysql
mysql查看死锁 查看死锁查看innodb的状态 1show engine innodb status; 这里可以看到mysql检测到的死锁。 查看正在进行中的事务 1SELECT * FROM information_schema.INNODB_TRX; 查看正在锁的事务 1SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 查看等待锁的事务 1SELECT * F 2022-05-18 mysql #mysql
mysql语句分析 慢查询set long_query_time=0;是将慢查询的阈值设置为0。表示这个线程接下来的的语句都会被记录到慢查询日志中。show variables like ‘%datadir%’ 查看数据存储路径 show variables like ‘%slow_query_log%’ 查看慢查询日志存储路径 打开C:\ProgramData\MySQL\MySQL Server 8.0 2022-05-18 mysql #mysql
shiro实践 实践这几张图能实现的功能有哪些: 具体的架构图: 官网找例子https://shiro.apache.org/ Integrations - spring 页面中有连接是连接到github。 https://github.com/apache/shiro/tree/main/samples 这是官方提供的例子。 main方法使用参考 https://github.com/apache/s 2022-05-18 权限框架 #shiro
redisson简介及分布式锁 redissonRedisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaph 2022-05-17 redis #redis
Redis之1持久化 redis为什么要持久化1.redis做为数据库使用时,数据库必须提供持久化特性; 2.redis做为缓存使用时,持久化缓存数据: redis崩溃时重新加载持久化的数据; redis迁移 redis支持的两种持久化方式RDB(Redis Database Backup file)属于全量数据备份,备份的是数据 save 这个是阻塞的。一般在关机维护时使用。 bgsave 这个是由fork( 2022-05-17 redis #redis
Redis之2单点到集群 单机、单节点、单实例有什么问题? 单点故障 容量有限 压力 redis sentinel(哨兵)可以解决:单点故障、压力(连接或读) 选举当redis集群的主节点故障时,Sentinel集群将从剩余的从节点中选举一个新的主节点,有以下步骤: 故障节点主观下线 故障节点客观下线 Sentinel集群选举Leader Sentinel Leader决定新主节点 选举过程1、主观下线Sentine 2022-05-17 redis #redis
Redis之3过期键的删除策略 Redis的过期键的删除策略Redis是key-value数据库,我们可以设置Redis中缓存的key的过期时间。 Redis的过期策略就是指当Redis中缓存的key过期了,Redis如何处理。 通用的过期策略定时过期每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间 2022-05-17 redis #redis
redis之4缓存雪崩与缓存击穿与缓存穿透 前置Mysql 做数据库 redis做缓存 缓存击穿什么是缓存击穿单个key过期,高并发访问这个key, 高并发直接访问数据库。 解决方案分布式锁只让一个请求去访问数据库 缓存穿透什么是缓存穿透简单描述:从业务接收查询的是你系统根本不存在的数据 复杂描述:缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候, 在缓存中找不到对应key的value,每次都要去数 2022-05-17 redis #redis
redis之5如何保证数据库与缓存的数据一致性 前置Mysql 做数据库 redis做缓存 如何保证数据库与缓存的数据一致性?cache aside pattern 1.命中:程序先从缓存中读取数据,如果命中,则直接返回 2.失效:程序先从缓存中读取数据,如果没有命中,则从数据库中读取,成功之后将数据放到缓存中 3.更新:程序先更新数据库,在删缓存。 先更新数据库,再删除缓存, 是不是就没有问题?假设这会有两个请求,一个请求A做查询操作,一 2022-05-17 redis #redis