lily's blog

Thinking will not overcome fear but action will.

广搜和深搜 问题 什么题型适合使用广度优先搜索而不是深度优先搜索? 视具体题目要求的答案而定,因为不管是深搜还是广搜的基本定义都是从当前节点出发,向周围节点扩散搜索的搜索方法。 深搜顾名思义就是先对某一条路径进行深度搜索(直到搜索至终点之后才会返回)。 而广搜则是需要兼顾所有方向,每一个搜索方向的进度都是一样的,所有方向齐头并进,适合搜索节奏需要保持一致的题型,一般最短路径题型会...

B+树原理 存储数据结构 B+tree是在B tree的基础上添加 B+树是一种自平衡的树数据结构,通常用于数据库和文件系统中。与普通二叉树不同,B+树的每个节点可以有多个子节点。在B+树中,根节点可以包含多个键(关键字),并且这些键是有序的。 B+树的结构 节点类型: 内部节点: 包含指向子节点的指针和一些键(关键字),用于指导查找路径。 叶子节点: 包含实际的数据记录或...

介绍一下数据库设计的三范式 第一范式:表不可再分 第二范式:消除了非主属性对主属性的部分函数依赖 第三范式:消除了非主属性对主属性的传递函数依赖 数据库设计的三范式是数据规范化的一种方法,是针对关系数据库设计的理论。第一范式要求每个列的值都是不可再分的原子值;第二范式要求所有非主键属性必须完全依赖于整个主键,而不是依赖于主键的某一部分;第三范式要求非主键属性之间不能存在传递依赖关系,即所有数...

SMART方法论 Specific(具体的) Measurable(可衡量的) Achievable(可实现的) Realistic & Relevant(实际的) Time-bound(有时限的) Specific(具体的) 如果目标太宽泛或太模糊,则很容易错失目标。如果定义太过广泛,则难以衡量且难以实现。 在创建 SMART 目标时,请尝...

Markdown 代码语法 要将单词或短语表示为代码,请将其包裹在反引号 (`) 中。 Markdown语法 HTML 预览效果 At the command prompt, type nano. At the command prompt, type nano. At the command prompt, type nano. #转义反引号 如果你要表示为代码的单词或短语中包含一个或多...

yarn 关于yarn tyarn npm cnpm的区别 npm是nodejs的包管理工具,yarn是facebook开发的另一个包管理工具,tyarn是yarn的国内镜像(taobao镜像源),cnpm是npm的国内镜像。 推荐使用 tyarn 来进行包管理,可以极大地减少 install 的时间和失败的概率,并且完全兼容 npm。如果喜欢使用 npm 而不是 yarn,可以使...

聊聊分布式锁 (qq.com)—字节跳动谈分布式锁 ZK实现分布式锁 ZooKeeper 分布式锁是基于 临时顺序节点 和 Watcher(事件监听器) 实现的。 获取锁: 首先我们要有一个持久节点/locks,客户端获取锁就是在locks下创建临时顺序节点。 假设客户端 1 创建了/locks/lock1节点,创建成功之后,会判断 lock1是否是 /locks 下最小的...

学习资料参考 面试题 实现im通讯demo springboot+netty+ws通讯demo IM架构设计

分库分表理论 前置理论知识 常见问题 为什么要分库分表? 我们分库分表用的非常熟。但不能为了等到系统到了200万数据,才拆。那么工作量会非常大 我们的做法是,因为有成熟方案,所以前期就分库分表了。但,为了解释服务器空间。所以把分库分表的库,用服务器虚拟出来机器安装。这样即不过多的占用服务器资源,也方便后续数据量真的上来了,好拆分。 同时,抽奖系统,是瞬时峰值较高的系统,历史数据...

参考文章: 官方github地址文档 RSA+AES加密算法 在HTTPS中,RSA+AES的加密方案结合了非对称加密(RSA)和对称加密(AES)的优点,以确保通信的安全性和效率。下面是具体的过程和相关细节: 1. RSA和AES在HTTPS中的加密流程 HTTPS加密使用RSA+AES的混合加密模式,整个过程可以分为两个阶段: (1) 握手阶段(使用RS...