undo log了解
undo log 用来保证原子性 1.redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。 2.undo用来回滚行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。
undo log 用来保证原子性 1.redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。 2.undo用来回滚行记录到某个版本。undo log一般是逻辑日志,根据每行记录进行记录。
Redis学习路径 掌握数据结构 学会基本数据结构用法 string list hash set zset 思考对应的使用场景 特殊数据结构用法 HyperLogLog Bitmap GEO 思考对应的使用场景 使用场景 分布式锁 掌握支撑redis实现高可靠,高性能的技术 持久化机制 aof rdb aof和rdb的比较,以及如何实际应用 主从复制机制 同步 命令传播 主从复制搭建 哨兵机制 监控 决策 通知 切片集群(解决单台服务器数据量过多的方案) 什么是切片集群 数据如何分配到实例 客户端发送消息的机制 精通底层实现原理 事件机制 数据结构实现原理 高可靠,高性能的原理 哨兵集群:分布式系统选举和共识问题 切片集群:分布式系统问题
redis 淘汰策略 分类角度:会进行淘汰的和不进行淘汰的 不会进行淘汰的 noeviction 会进行淘汰的 过期内淘汰的 volatile-random、volatile-ttl、volatile-lru、volatile-lfu 全部数据淘汰的 allkeys-lru、allkeys-random、allkeys-lfu ...
redis 消息队列方案 观察角度:消息有序,重复消息处理,消息可靠性保证 pub/sub 发布订阅机制 list集合 消息有序:lpush和rpop可以保证消息顺序的被消费 重复消息处理:list没有为消息提供唯一标识,需要生产者提供唯一标识,消费程序自行判断消息是否重复 ...
数据不一致的原因 缓存或数据库只有一个操作失败 先删数据库数据 再删除缓存数据 先删除缓存数据 再删除数据库数据 多线程(先删缓存,再删数据库) 线程a先删除缓存数据,此时线程b查询数据库,并把旧数据放入缓存,a线程再插入数据库,之后的线程可能只会读到缓存上的旧数据 多线程(先删除数据库,再删除缓存)a线程删除完数据库旧数据到删除缓存这段时间,如果有读操作,那么会读到旧数据,等到a线程更新完缓存,缓存就为新的数据。 数据不一致的解决方案 重试机制 针对第三点 可以让a线程sleep 一小段时间 目的是为了 让像b线程这些查询操作 完成将旧数据放入缓存的操作,之后a线程再更新下缓存,sleep时间需要实测,比较难界定。 ...