Day12
2025-01-15🌱上海: ☀️ 🌡️+6°C 🌬️↓18km/h
# Redis 中如何保证缓存与数据库的数据一致性?
# 总结分析
缓存和数据库的同步有六种方式:
先更新缓存,再更新数据库;
先更新数据库,再更新缓存;
先删除缓存,再更新数据库,后续查询回种数据到缓存;
先更新数据库,再删除缓存,后续查询回种数据到缓存;
缓存双删策略:更新数据库前后各进行一次删除缓存操作,第二次为延迟删除;
使用定时任务进行重试删除缓存
使用MQ异步定时重试删除缓存
使用 Binlog 异步更新缓存,监听数据库 Binlog 变化异步更新 Redis 缓存。
前三种方式不太推荐。
more...Day8
2025-01-15🌱上海: ☀️ 🌡️+4°C 🌬️↓19km/h
# MySQL中有哪些锁类型?
# 简要回答
在MySQL中,主要有以下几中锁类型:
行级锁:对特定行加锁,适合高并发,允许并发访问不同行。
表级锁:对整个表加锁,用于需保证完整性的小型表,加锁时其他事务无法读写。
意向锁:表锁,分意向共享锁(IS)和意向排它锁(IX),用于行级锁与表级锁结合。
共享锁:允许多个事务并发读,不允许修改,释放后其他事务才能获排它锁。
排它锁:只允许一个事务读写,其他事务需等待排它锁释放。
元数据锁(MDL):保护数据库对象元数据,防止 DDL 操作时被修改。
间隙锁:针对
more...Day7
2025-01-15🌱上海: ☀️ 🌡️+4°C 🌬️↓19km/h
# MySQL中的事务隔离级别有哪些?
# 事务的隔离级别
读未提交(READ UNCOMMITTED) 是最低的隔离级别,在这种隔离级别下,一个事务可以读到另一个事务未提交的数据。这种隔离级别下会存在幻读、不可重复读和脏读的问题。
读已提交 (READ COMMITTED) 在一个事务修改数据过程中,如果事务还没提交,其它事务不能读该数据。所以,这种隔离级别是可以避免脏读的发生的,但是可能会引发不可重复读问题,即在同一个事务中,相同的查询可能返回不同的结果。
可重复读 (REPEATABLE READ
more...







