Redis是一款用C编写的基于内存的非关系数据库,实际开发中,Redis用作缓存数据库,用来减轻后端数据库的压力。Redis全称为:Remote Dictionary Server(远程数据服务)。
Redis官网::http://redis.io/
咱认为,学习Redis的最佳方式是从项目开始。先学一点数据结构Redis的终端命令,然后再接入SpringBoot快速上手项目使用。学完基本数据使用后,再探究其原理。
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环境。
命令行、终端、Shell、Promt的基础认知。
操作系统自带的终端都很丑且难用,好用的终端需要一番折腾配置(特别是国内环境网络问题),新手往往望而生畏。
【在学校没有人教你的终端基础知识】 https://www.bilibili.com/video/BV1rk4y1W7dZ
设计模式大致分为三类。
记住所有的设计模式是愚蠢的,关注自己所在领域常用设计模式,语言框架中默认使用的设计模式。
这节课主要介绍了线性一致的概念与Zookeeper论文。
线性一致描述的是系统的行为,正确的行为是客户端发送了一个写请求并且收到服务端答复后,这个写请求能被之后的读请求看到。每个读请求看到的都是最新的写请求所作的更改。
Zookeeper论文是我接触到的最抽象的一篇论文。首先它的功能就很抽象:分布式协调内核。它提供的两个保证:线性写和FIFO客户端请求也费时间理解。最后则是它的API调用以及具体实现。
读这篇论文的原因我想一是Zookeeper的广泛使用,证明了其实用性;二是其“线性一致”的设计,契合课程。收获就是其API的设计、Watch模式。
这节课主要介绍容错的主要手段——复制以及相应的论文:Fautl-Tolerant Virtual Machines。
这节课主要介绍分布式存储系统的难点以及论文GFS。
分布式系统出现的原因是人们想要利用更多的机器实现更好的性能,但更多的机器意味着故障的期望上升。解决单台机器故障最简单的办法就是多副本的容错机制,但多副本间需要时间同步。一致性难题意味着牺牲性能,这是个闭环,人们必须在性能和一致性上做取舍。
对于GFS的学习,我觉得首先要明白GFS应对的需求,整体的架构设计,然后就是读写过程,数据一致性,这是从使用层面上来说的。在高可用方面,GFS的备份管理、文件快照、崩溃恢复等细节需要再深入研究。