- Blog性质
- 本BLOG由个人维护,文章内容来自于个人原创,主要目的为记录、整理学习过程中遇到的问题和笔记,不涉及商业用途
- 关于转载、版权
- 欢迎非商业性用途转载,转载请注明出处
- 本BLOG文章除特别声明以外,均为作者原创,未经作者本人允许不得擅自用于商业用途及传统媒体
基础题
典型题
常用算法
进阶算法
数据结构设计
SQL典型题
解题通用思路
给定总玩家数n,以及按[玩家编号,对应可传递玩家编号]关系组成的二维数组 relation。返回信息从编号0玩家经过k轮传递到编号为n-1玩家处的方案数;若不能到达,返回0
示例:输入:n = 5, relation = [[0,2],[2,1],[3,4],[2,3],[1,4],[2,0],[0,4]], k = 3
输出:3
解释:信息从小 A 编号 0 处开始,经 3 轮传递,到达编号 4。共有 3 种方案,分别是 0->2->0->4, 0->2->1->4, 0->2->3->4。
解法:模拟法
1 | # k是轮数,n是总人数 |
一、MyRedis开发
二、秒杀系统
1.Redis的数据序列化协议是RESP,即client和server之间的通信协议,5种数据格式如下:
2.myRedis的解析异步化
1 | func ParseStream(reader io.Reader) <-chan *Payload{ |
3.k-v和dict的实现
4.数据命令解析过程
5.核心链路
6.aof落盘逻辑
7.碰到的问题
8.集群化
- 连接池是自己作为客户端与其他节点的连接(客户端用的是github上的开源库)
云服务器配置
本地设置
域名相关
1.采用阿里云单核CPU云服务器ECS
2.云服务器安全组规则
1 | 网卡类型:内网 |
3.在云服务器上配置Nginx和Git
1 | apt install nginx |
4.配置blog文件路径
1 | mkdir /var/blog/ |
1 | chown -R $USER:$USER /var/repo/ |
1 | cd /var/blog |
5.配置Nginx托管文件路径
1 | mkdir -p /var/www/hexo |
1 | root /var/www/hexo |
1 | server_name 39.105.120.230 kenway-20.com www.kenway-20.com; |
6.Git钩子(hook)
1 | vim /var/blog/kenwayBlog.git/hooks/post-receive |
1 | #!/bin/bash |
1 | chmod +x /var/blog/kenwayBlog.git/hooks/post-receive |