redis的持久化

对于快照持久化,是在某一时刻把所有的数据写入硬盘种,这种方式有可能导致数据不全;在使用这种方式持久化的时候,如果系统发生崩溃,用户会丢失最近一次快照的所有数据,因此使用场景是面对丢失一部分数据也没事的场景;

阅读全文

求滑动窗口中每个窗口的最大值

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的

阅读全文

MySQL锁机制总结

MySQL锁机制总结

锁的划分

阅读全文

顺序打印矩阵

顺时针打印矩阵,每次经过一个循环,各个边界进行自增或自减操作

阅读全文

红黑树

概念引入

假如我们遇到一个猜数字的题,即给定一个序列,猜出该序列中的某个数字。一般该序列是有序的,用户猜出一个数字之后提示该数字是大了还是小了。

折半法

这种方法最容易想到,每次猜出该序列中的中位数,然后将序列分成了两个序列,这样每猜一次,将排除掉一般的数字。

阅读全文

分布式自增数据库ID

引言

今天在写项目的时候学习了一个用代码编写的自增的数据库ID,其实是一个ID缓冲池。使用了golang中chan类型。

建表

我们希望该ID缓冲池可以为我们其他不同的数据表进行ID的生成,因此需要建一个如下表:

阅读全文

计算机操作系统——锁的进化

导语

相信大家都知道金鱼是不知道饥饿的,如果有食物吃,金鱼就会不停的填饱肚子,哪怕被撑死。在计算机中锁的进化可以用金鱼生存的例子来引入。

金鱼生存

左一和右尔共同养了一条金鱼,该金鱼每天仅仅喂食一次,如果多喂了一次,鱼会被撑死,如果没有喂金鱼,则金鱼会饿死。那么左一和右尔必须约定好各自如何喂鱼。

阅读全文

复制复杂链表

复制复杂链表——递归与非递归

定义树的结点如下,该结点不仅有一个next指针,而且还有一个指向任意结点的指针。实现一个clone函数。该结点形成的链表形式如下图:
链表

阅读全文

栈的压入和弹出

判断序列2是否是序列1形成栈的一种弹出序列

如序列1:1,2,3,4,5

序列2:4,5,3,2,1

对于以上弹出序列可用以下的压入弹出形成,因此是子序列
push(1),push(2),push(3),push(4),pop(4),push(5),pop(5),pop(3),pop(2),pop(1)

阅读全文

二叉树镜像

二叉树的镜像

1
2
3
4
5
6
7
        8
6 10
5 7 9 11

8
10 6
11 9 7 5

阅读全文