主要记录我对于redis7.2.3源码的阅读
What is Redis?
Redis is often referred to as a data structures server. What this means is that Redis provides access to mutable data structures via a set of commands, which are sent using a server-client model with TCP sockets and a simple protocol. So different processes can query and modify the same data structures in a shared way.
Redis通常被称为数据结构服务器。这意味着Redis通过一组命令提供对可变数据结构的访问,这些命令使用带有TCP套接字和简单协议的服务器-客户端模型发送。因此,不同的进程可以以共享的方式查询和修改相同的数据结构。
阅读方法采用提出问题 –> 再去探索的思路。
问 ...
GoGuide
未读MySQL基础知识
持续更新中…
索引存储日志锁事务
GoGuide
未读Golang基础知识
根据本人知识进行持续更新中…
OOP[面试题]、说说你对面相对象的理解
如何回答呢?
首先我们肯定要讲出面向对象的三个特性:a.封装 b.继承 c.多态
接下来我们详细说一下这三个特性。
封装:封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项,或者叫接口。
继承: 继承基类的方法,并做出自己的扩展; 声明某个子类兼容于某基类(或者说,接口上完全兼容于基类),外部调用者可无需关注其差别(内部机制会自动把请求派发dispatch到合适的逻辑)。
多态:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。很显然,多态实际上是依附于继承的第二种含义的。
其实一般说到这里就可以了,当然我们也可以举一些例子。(其实对于封装和继承很好理解,这个例子基本上不用,那么我们可以举一些多态的例子)
什么是多态呢?这时候我们可以举一下子,重写和重载。基本上把这两个说好就可以了。
slice当前引用下会把相关面试问题回答,后续是一些相关知识
[面试题一]、slice的扩容过程?
对于这个问题,我们要理清思路,讲到扩容,对于slice这种比较简 ...
CS 01计算机系统漫游
通过跟踪hello程序的生命周期来开始对系统的学习。
算法学习
参考链接:应该是最全的算法学习路线了吧法学习路线了吧_大学算法学习路线 cdsn-CSDN博客
1.基础算法a.递归参考链接:递归算法——超详细讲解(图文并茂)-CSDN博客
递归,在数学与计算机科学中,是指在方法的定义中使用方法自身。也就是说,递归算法是一种直接或者间接调用自身方法的算法。简言之:在定义自身的同时又出现自身的直接或间接调用。
简单的案例:
509. 斐波那契数
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。
func fib(n int) int { if n == 0 || n == 1 { return n } return fib(n-1) + fib(n-2)}
通过递推关系,为我们可以写出这样的代码。
递归是相对简单的算法了 ...
Star法则 所谓STAR原则,即Situation(情景)、Task(任务)、Action(行动)和Result(结果)四个英文单词的首字母组合。
STAR原则是结构化面试当中非常重要的一个理论。
S指的是situation,中文含义是情景,也就是在面谈中我们要求应聘者描述他在所从事岗位期间曾经做过的某件重要的且可以当作我们考评标准的事件的所发生的背景状况。
T指的是task,中文含义为任务,即是要考察应聘者在其背景环境中所执行的任务与角色,从而考察该应聘者是否做过其描述的职位及其是否具备该岗位的相应能力。
A指的是action,中文含义是行动,是考察应聘者在其所描述的任务当中所担任的角色是如何操作与执行任务的。
R指的是result,中文含义为结果,即该项任务在行动后所达到的效果,通常应聘者求职材料上写的都是一些结果,描述自己做过什么,成绩怎样,比较简单和宽泛。而我们在面试的时候,则需要了解应聘者如何做出这样的业绩,做出这样的业绩都使用了一些什么样的方法,采取了什么样的手段,通过这些过程,我们可以全面了解该应聘者的知识、经验、技能的掌握程度以及他的工作风格、性格特点等与工作 ...
LeetCode高频SQL 50题
地址: https://leetcode.cn/studyplan/sql-free-50/
查询1757. 可回收且低脂的产品
# Write your MySQL query statement belowselect product_id from Products where low_fats = 'Y' and recyclable = 'Y';
584. 寻找用户推荐人
# Write your MySQL query statement belowselect name from Customer where ifnull(referee_id,0) != 2;
595. 大的国家
# Write your MySQL query statement belowselect name , population, area from World where area >= 3000000 or population >= 250 ...
Golang限流器time/rate
golang标准库中就自带了限流算法的实现,即golang.org/x/time/rate。 该限流器是基于Token Bucket(令牌桶)实现的。
time/rate包的使用创建一个限流器:
limiter := NewLimiter(10,1)
这里有两个参数:
第一个参数是 r Limit。代表每秒可以向 Token 桶中产生多少 token。Limit 实际上是 float64 的别名。
第二个参数是 b int。b 代表 Token 桶的容量大小。
那么,对于以上例子来说,其构造出的限流器含义为,其令牌桶大小为 1, 以每秒 10 个 Token 的速率向桶中放置 Token。
除了直接指定每秒产生的 Token 个数外,还可以用 Every 方法来指定向 Token 桶中放置 Token 的间隔,例如:
limit := Every(100 * time.Millisecond);limiter := NewLimiter(limit, 1);
以上就表示每 100ms 往桶中放一个 Token。本质上也 ...
项目管理–WBS什么是WBS ?
工作分解结构(Work Breakdown Structure,简称WBS)跟因数分解是一个原理,就是把一个项目,按一定的原则分解,项目分解成任务,任务再分解成一项项工作,再把一项项工作分配到每个人的日常活动中,直到分解不下去为止。
即:项目 → 任务 → 工作 → 日常活动
工作分解结构(WBS,Work Breakdown Structure),以可交付成果为导向对项目要素进行的分组,它归纳和定义了项目的整个工作范围,每下降一层代表对项目工作的更详细定义。
创建工作分解结构(WBS)是把项目可交付成果和项目工作分解成较小、更易于管理的组件的过程。本过程的主要作用是,为所要交付的内容提供架构,它仅开展一次或仅在项目的预定义点开展。
输入、工具与技术和输出
创建 WBS 的方法多种多样,常用的方法包括自上而下的方法、使用组织特定的指南和使用 WBS模板。
WBS的主要用途WBS具有4个主要用途:
WBS是一个描述思路的规划和设计工具。它帮助项目经理和项目团队确定和有效地管理项目的工作。
WBS是 ...