08 2023 档案

LocalDateTime 处理时间
摘要://如果修改时间在9:20之前 则当天九点半执行mq消费 否则在第二天9点半执行if (LocalTime.now().compareTo(LocalTime.of(9, 20)) <= 0) { consumeTime = LocalDate.now().atStartOfDay().plusHo 阅读全文

posted @ 2023-08-17 11:12 潮流教父孙笑川 编辑

缓存穿透、缓存击穿、缓存雪崩
摘要:什么是缓存穿透?(限流,网关层面限制ip的单位请求) 缓存穿透说简单点就是大量请求的 key 是不合理的,根本不存在于缓存中,也不存在于数据库中 。这就导致这些请求直接到了数据库上,根本没有经过缓存这一层,对数据库造成了巨大的压力,可能直接就被这么多请求弄宕机了。 解决办法:1、参数校验,一些不合法 阅读全文

posted @ 2023-08-12 16:40 潮流教父孙笑川 编辑

redis数据库一致性的问题,目的:保持数据的最终一致性,不能为了强一致性牺牲吸能
摘要:订阅变更日志,目前也有了比较成熟的开源中间件,例如阿里的 canal,使用这种方案的优点在于: 无需考虑写消息队列失败情况:只要写 MySQL 成功,Binlog 肯定会有 自动投递到下游队列:canal 自动把数据库变更日志「投递」给下游的消息队列 至此,我们可以得出结论,想要保证数据库和缓存一致 阅读全文

posted @ 2023-08-12 16:28 潮流教父孙笑川 编辑

Redis bigkey(大 Key)、Redis hotkey(热 Key
摘要:简单来说,如果一个 key 对应的 value 所占用的内存比较大,那这个 key 就可以看作是 bigkey。具体多大才算大呢?有一个不是特别精确的参考标准:string 类型的 value 超过 10 kb,复合类型的 value 包含的元素超过 5000 个(对于复合类型的 value 来说, 阅读全文

posted @ 2023-08-12 16:13 潮流教父孙笑川 编辑

redis的8种数据结构和应用,Bitmap同步活跃数、sorted set做排行榜,朋友圈
摘要:5 种基础数据结构:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。 3 种特殊数据结构:HyperLogLogs(基数统计)、Bitmap (位存储)、Geospatial (地理位置)。 参考:https://github.com/Snailcl 阅读全文

posted @ 2023-08-12 15:52 潮流教父孙笑川 编辑

redis的实际应用场景--分布式锁、分布式session
摘要:分布式锁:通过 Redis 来做分布式锁是一种比较常见的方式。通常情况下,我们都是基于 Redisson 来实现分布式锁。关于 Redis 实现分布式锁的详细介绍,可以看我写的这篇文章:分布式锁详解 。 限流:一般是通过 Redis + Lua 脚本的方式来实现限流。相关阅读:《我司用了 6 年的 阅读全文

posted @ 2023-08-12 15:32 潮流教父孙笑川 编辑

Mvcc如果防止幻读
摘要:InnoDB存储引擎在 RR 级别下通过 MVCC和 Next-key Lock 来解决幻读问题: 1、执行普通 select,此时会以 MVCC 快照读的方式读取数据 在快照读的情况下,RR 隔离级别只会在事务开启后的第一次查询生成 Read View ,并使用至事务提交。所以在生成 Read V 阅读全文

posted @ 2023-08-12 15:06 潮流教父孙笑川 编辑

一致性非锁定读和锁定读,总是读取最新数据,lock in share mode、for update
摘要:如果执行的是下列语句,就是 锁定读(Locking Reads) select ... lock in share mode select ... for update insert、update、delete 操作 在锁定读下,读取的是数据的最新版本,这种读也被称为 当前读(current rea 阅读全文

posted @ 2023-08-12 15:03 潮流教父孙笑川 编辑

binlog,redolog的执行顺序
摘要:先让redolog进入 prepare 状态,再记录binlog,再提交redolog 以上就是一条查询 SQL 的执行流程,那么接下来我们看看一条更新语句如何执行的呢?SQL 语句如下: update tb_student A set A.age='19' where A.name=' 张三 '; 阅读全文

posted @ 2023-08-12 14:58 潮流教父孙笑川 编辑

脏读、丢失修改、幻读、不可重复读,间隙锁解决幻读
摘要:脏读(Dirty read) --A事务修改了值,但没提交,又回滚了。B读取了A修改了的值,而不是回归后的值 一个事务读取数据并且对数据进行了修改,这个修改对其他事务来说是可见的,即使当前事务没有提交。这时另外一个事务读取了这个还未提交的数据,但第一个事务突然回滚,导致数据并没有被提交到数据库,那第 阅读全文

posted @ 2023-08-12 14:17 潮流教父孙笑川 编辑

union join区别
摘要:union是连接两个select语句形成一个并集,join则是通过两个表的相同字段进行连接,是对两个表连接 以下是 SQL 中不同类型的 JOIN: (INNER) JOIN:返回两个表中具有匹配值的记录。 LEFT (OUTER) JOIN:返回左表中的所有记录,以及右表中匹配的记录。 RIGHT 阅读全文

posted @ 2023-08-12 13:57 潮流教父孙笑川 编辑

索引失效的场景、建索引的原则
摘要:避免索引失效 索引失效也是慢查询的主要原因之一,常见的导致索引失效的情况有下面这些: 使用 SELECT * 进行查询; SELECT * 不会直接导致索引失效(如果不走索引大概率是因为 where 查询范围过大导致的),但它可能会带来一些其他的性能问题比如造成网络传输和数据处理的浪费、无法使用索引 阅读全文

posted @ 2023-08-12 12:00 潮流教父孙笑川 编辑

覆盖索引,覆盖索引通过explain查看
摘要:、创建覆盖索引并使用 EXPLAIN 命令分析。 为了能够对这 100w 数据按照 score 进行排序,我们需要执行下面的 SQL 语句。 SELECT `score`,`name` FROM `cus_order` ORDER BY `score` DESC;#降序排序 使用 EXPLAIN 命 阅读全文

posted @ 2023-08-12 11:53 潮流教父孙笑川 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示