上一页 1 2 3 4 5 6 ··· 39 下一页
摘要: Innodb简要架构是怎么样的? InnoDB内存结构包含哪些核心组件? (1)缓冲池(Buffer Pool):缓存数据页和索引页,加速查询操作,避免每次查询都需要进行磁盘随机IO(优化磁盘IO随机读)。 (2)写缓冲区(Change Buffer):写数据时,当数据不在缓冲池中,将数据直接写入写 阅读全文
posted @ 2022-01-11 17:05 Tracydzf 阅读(36) 评论(0) 推荐(0) 编辑
摘要: Innodb 内存结构 Innodb的内存结构主要分为 3 个部分: Buffer Pool、Change Buffer、Adaptive HashIndex,另外还有一个(redo)log buffer。 缓冲池 Buffer Pool 首先,InnnoDB的数据都是放在磁盘上的,InnoDB操作 阅读全文
posted @ 2022-01-11 16:05 Tracydzf 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。 又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。 目前没有一篇全面的博客,对这几种方案进行解析 阅读全文
posted @ 2022-01-11 11:51 Tracydzf 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 我本来以为1个工作节点执行完一项任务后,会释放任务申请的内存(毕竟一项任务执行完后它内部变量就不能引用了,python的垃圾回收机制应该会回收掉才对),这样的话最多同时有4个B工作节点在运行着,也就差不多消耗4G内存,绰绰有余! 然而,事实上,在celery中一个工作节点并不会释放一次任务的内存(至 阅读全文
posted @ 2022-01-11 09:40 Tracydzf 阅读(1110) 评论(0) 推荐(0) 编辑
摘要: 重做日志(redo log)和回滚日志(undo log)与事务操作息息相关,二进制日志二进制日志(binlog)也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义。 一、重做日志(redo log) 作用: 确保事务的持久性。redo日志记录事务执行后的状态,用来恢复 阅读全文
posted @ 2022-01-10 19:04 Tracydzf 阅读(249) 评论(0) 推荐(0) 编辑
摘要: Python 字典是通过哈希表实现的 哈希表必然存在哈希冲突。比如:就算两个键存在相同的哈希值,哈希表必须要有策略用来明确两个值插入和读取 Python 字典使用开放寻址法解决哈希冲突(下面展开讲)(源码:dictobject.c:296-297) Python 的哈希表仅仅是一块连续的内存(类似于 阅读全文
posted @ 2022-01-10 15:34 Tracydzf 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 在 Redis 中是以 哈希表的方式来保存键值对数据的,但是随着键值对的增多,会出现 哈希冲突的情况,这种情况,Redis 是以链表的方式解决哈希冲突的。 当链表变得很长时,会影响 Redis 的查找性能,为了减小 链表的长度,Redis 采用了 rehash 操作,也就是把扩大当前哈希表的长度,R 阅读全文
posted @ 2022-01-10 14:47 Tracydzf 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 推荐方案 采用更新前后双删除缓存策略 public void write(String key,Object data){ redis.del(key); db.update(data); Thread.sleep(1000); redis.del(key); } 先淘汰缓存 再写数据库 休眠1秒, 阅读全文
posted @ 2022-01-10 14:41 Tracydzf 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 所谓两阶段提交,其实就是把 redo log 的写入拆分成了两个步骤:prepare 和 commit。 首先,存储引擎将执行更新好的新数据存到内存中,同时将这个更新操作记录到 redo log 里面,此时 redo log 处于 prepare 状态。 然后告知执行器执行完成了,随时可以提交事务 阅读全文
posted @ 2022-01-07 14:51 Tracydzf 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 1.通过 普通队列超时时间设置(TTL)+ 死信交换机(DLX)+死信队列+消费者 实现; 普通队列 的消息设置超时时间,等 超时后,消息 会通过 死信交换机 路由到 死信队列,消费者 消费 死信队列中的 消息 从而实现延时队列功能; 2.通过 rabbitmq插件rabbitmq-delayed- 阅读全文
posted @ 2022-01-04 16:56 Tracydzf 阅读(293) 评论(1) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 39 下一页