从系统维度介绍Redis的常见面试题。参考:https://zhuanlan.zhihu.com/p/427496556
从系统维度介绍Redis的常见面试题。参考:https://zhuanlan.zhihu.com/p/427496556
这节课主要介绍了链复制的基本思想以及链复制的改进(Chain Replication with Apportioned Queries,CRAQ)。
CRAQ通过引入版本机制以及clean/dirty状态机制来改进多个节点的分散读。当数据首次到达中间节点时,该数据会被标识为dirty;当数据达到tail节点时,数据标识为clean,并进行反向传播,使之前的节点也将该数据标识为clean。
Raft是一个分布式共识算法/协议,即让多台机器达成一致的算法。
Raft将共识问题分解为三部分:Leader选举、Log复制以及安全性设置(一致性设置)。
由于实验2完整复现了Raft协议,这里只挑一些重点讲。复现时应该着重考虑:节点崩溃又上线、不可靠网络。
链表的题目多涉及指针操作,需要画图显示步骤,不然容易搞混。
常用的套路有:
Redis是一款用C编写的基于内存的非关系数据库,实际开发中,Redis用作缓存数据库,用来减轻后端数据库的压力。Redis全称为:Remote Dictionary Server(远程数据服务)。
Redis官网::http://redis.io/
咱认为,学习Redis的最佳方式是从项目开始。先学一点数据结构Redis的终端命令,然后再接入SpringBoot快速上手项目使用。学完基本数据使用后,再探究其原理。
笔记取自:
设计模式大致分为三类。
记住所有的设计模式是愚蠢的,关注自己所在领域常用设计模式,语言框架中默认使用的设计模式。
Git是一个版本控制工具,通常配合远程代码仓库多人协作开发。上手Git并不难,用过之后就会觉得真香。我入门的方式就是给一个项目提Pull Request。
git学习思路:单链 -> 树 -> 多棵树
本地版本控制(利用状态机的思想学习Git)
分支版本控制(利用树的思想)
远程仓库控制(两颗树之间的对应!)
最后学习学习git相关的配置文件,git就算简单入门了。
推荐阅读:https://www.progit.cn/#_pro_git
在线Git闯关-图形化学GIt:https://learngitbranching.js.org/?locale=zh_CN
Missing Semmster Learning 学习笔记
计算机教学中缺失的一课 :https://missing.csail.mit.edu/。
这里的笔记主要关于:命令行、shell编程、shell环境。