- 博客(5)
- 资源 (9)
- 问答 (1)
- 收藏
- 关注
原创 缓存置换算法之LRU/LFU
常见缓存置换算法 LRU 最近最久未使用 FIFO 先进先出置换算法 类似队列 OPT 最佳置换算法 (理想中存在的) NRU Clock置换算法 LFU 最少使用置换算法 PBA 页面缓冲算法 LRU 实现原理:链表+hash表 查询插入时间复杂度:O(1) 代码实现:LinkedHashMap dubbo的工具LRU工具类便是继承自LinkedHashMap:com.alibaba.dubbo.common.utils.LRUCache 数据结构 HashMap结构基础上,为所有Node节点维护一个
2021-07-31 16:35:58 374
原创 二叉树四种遍历方式
二叉树四种遍历方式,前中后序遍历按照根节点的访问顺序命名 前序遍历:根节点-》左子树-》右子树 中序遍历:左子树-》根节点-》右子树 后序遍历:左子树-》右子树-》根节点 平行序遍历 源码地址:https://github.com/GallantKong/tree.git 案例数据 /** * 案例数据: * 15 * / \ * 10 20 * / \ / \
2021-07-25 15:15:29 123
原创 分库分表设计
为什么要分库分表? 单库表无论是存储还是cpu/网络等物理资源存在极限,对于日益增长的业务无法支撑 分库分表设计 默认按照主键作为分库分表的key hash散列分库分表 优劣 优点:hash散列分布均匀,负载较为均衡 缺点:扩容难 扩容问题 扩容需要数据rehash+数据迁移,当然可以选择业务低峰时逐个迁移做到业务无感,但是迁移的成本与数据量成正比 可以学习参考HashMap的方案,扩容时避免rehash并且减少了迁移量,但是实用吗?为了成本当然时一台台扩容更为理想,不能每次扩容都成倍增长,该方案不适用
2021-07-18 16:03:25 302
原创 分布式事务之胡扯
为什么需要分布式事务? 随着互联网的高速发展,业务数据量级也已经不是单库表所能承担的,于是微服务与分库则应时而生,同时也引入了一些问题,最常见的案例:下单并支付动作需要触发,扣减库存以及账户余额。库存管理服务,账户管理服务两个微服务使用两个独立的数据库,而此时需要同时成功或失败回滚。 分布式事务实现方案 常见的方案有如下几种 本地消息表,方案最初有ebay提出(https://queue.acm.org/detail.cfm?id=1394128) TCC,TryConfirmCancel AT,Au
2021-07-11 21:09:56 162 1
原创 缓存一致性问题之缓存模式
上篇文章聊了聊redis框架底层HA与数据库一致性的方案,本篇文章主要介绍redis缓存与数据库之间的一致性问题,以及常用的设计模式 缓存模式 Cache-as-SoR Read/Write Through Write behind caching Cache Aside Cache-as-SoR(system-of-record) Read Through 流程 读(Read Through) 查询缓存模块 缓存模块命中直接返回 缓存模块未命中,缓存模块查询数据库 更新缓存模块并返回 Wr
2021-07-04 18:24:47 209
Sybase PowerDesigner16.5破解文件
2017-08-18
jprofiler.linux.windws.64.bit.part1.破解版
2016-07-08
element-ui中的menu菜单改为动态v-for循环生成后选中状态失效问题
2019-11-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人