自身知识体系的梳理与总结

抽点时间来梳理一下自己的知识体系,主要的框架流程是:

 

  1. tcp/ip
  2. http
  3. nginx
  4. php
  5. mysql(包括分布式系统相关)
  6. redis
  7. linux(常用命令)
  8. 面向对象,设计模式
  9. 算法
  10. 项目
  11. 其他

 

一.tcp/ip知识点整理

1.1. tcpip知识点

1.2. tcpip完整知识点扩充:

TCP/IP详解学习笔记 这位仁兄写得太好了

1.3. tcp长连接与短连接以及tcp/udp区别与联系

1.4. tcpip的流量控制:

TCP/IP详解学习笔记(15)-- TCP的流量控制和拥塞控制(注意1.2中提到的 坚持定时器、TCP保活定时器等四个定时器)

TCP流量控制和拥塞控制(有几个关于慢启动,拥塞避免的图。计算机网络那本书上的那个图,可以辅助复习)

TCP协议的流量控制、拥塞控制和差错控制知识点完善

1.5.其他

tcp的keepalive 与http的keep-alive的区别

如何防御ddos的攻击:(针对sync的攻击)[参考:DDOS攻击原理及防护方法论中的3.1.2]

1.sync proxy

2.随机丢包

3.特征匹配(带options的sync包)

4.sync cookies(给每一个请求连接的ip地址分配一个cookie)

5.ip信誉机制(终极)

 

另外,可以看一下关于tcp/ip,http我的相关手写笔记:在此

 

二.http

http完整讲解:HTTP协议详解(真的很经典)

http状态码

http与https的区别

http中的request和response的详细字段

http中的etag相关学习(可以查看我的相关笔记:在此

http中的expires与max-age

另外,tcp/ip和http可以结合这两篇文章来进行复习:

1.简洁版:知乎问

2.完整版:从输入URL到页面加载的过程?由一道题完善自己的前端知识体系!

(http的个人整体笔记:在此)

 

三.nginx

 

nginx 结构解析 

nginx rewrite 

nginx平滑重启的原理  

nginx常见的几种负载均衡算法的配置:介绍

nginx加权轮询的算法:介绍1,介绍2

nginx ip_hash(保持会话)的算法:介绍

nginx防盗链:文章1,文章2

nginx其他说明

 

 

四.php

 

 

4.1. 个人整理的知识框架:在此

4.2. php7的新特性:个人总结

4.3. 语言细节方面的问题

    4.3.1. array_merge与+的区别

    4.3.2. php中for,foreach,while的区别与联系

    4.3.3. 语言中array与对象的区别以及php变量的实现解析

    4.3.4. php中的魔术方法

    4.3.5.php中的self与static的区别;this,self,parent三个关键字的区别等

4.4. php的异常处理,线程安全(文章1)

4.5. php内存溢出的处理:文章1,文章2;内存回收机制

4.6. FastCGI与php-fpm的关系:个人总结,相关问题解答,白话讲解

 

五.MySQL

5.1. MySQL系统复习相关

    5.1.1. 个人手写相关笔记(这里1,这里2

5.1.2. 个人系统整理的比较结构化的mysql复习相关笔记(这里,复习mysql以这个为主

5.2. MySQL主从同步相关

5.2.1. 主从同步文章1(有图,简单易懂),文章2Mysql主从同步架构图和原理),文章3MySQL主从同步原理

 

5.2.2. MySQL数据库 主主、主从同步配置及原理(有详细配置说明)(auto-increment-offset=1, 2[多主偏移量不一致,但是后面的步数是一样的,跳跃的], auto-increment-increment=2)

 

mysql分表的防止id重复的两种方法(1.全局表,2.两个分表偏移一致,起点不同)

5.2.3. Mysql主从同步延迟的追踪问题和解决方案

5.3. 数据库中的锁

5.3.1. 乐观锁与悲观锁:简单说明;详细介绍

   5.3.2. mysql的锁--行锁,表锁,乐观锁,悲观锁 

5.4. mysql数据库事务(讲的很仔细,不错!强烈推荐要好好看一看

5.5. MySQL连接数相关问题

5.5.1. MySQL的连接池、异步、断线重连

5.5.2. 持久的数据库连接个人总结

5.6. 数据库分表(纯科普)

5.7. NoSQL数据库相关

    5.7.1. nosql(科普)

5.8. 分布式系统常见问题:

强一致性、弱一致性、最终一致性

面试应付篇

保证分布式系统数据一致性的6种方案(科普)

分布式锁(php的实现, 使用Redis SETNX 命令实现分布式锁)

相关(纯)科普:

常用的分布式事务解决方案

分布式锁1 Java常用技术方案

分布式系统阅读清单

分布式系统理论之Quorum机制

分布式系统解决方案

 

六.redis等缓存

个人整理的相关笔记(这里)

6.1. 数据类型以及底层数据结构的实现

文章1:深入浅出Redis-redis底层数据结构(上)(下)

文章2:Redis中的对象类型与底层编码(有底层实现的代码以及相关的对应关系,不错,值得一看)

文章3:Redis 的基础数据结构(一) 可变字符串、链表、字典

          文章4:聊一聊Redis的数据结构(有彩图分析数据结构的实际效果,不错)

6.2.特点 (参考redis的面试题)

6.3.redis的持久化[相当重要!!!](参考:关于Redis持久化(图片笔记说明版纯文字说明版,看绿色部分即可))

快照;aof。两者的原理一定要清楚。

快照相关说明:因为os的copyonwrite导致子进程的地址空间内的数据知识fork时刻整个数据库的一个快照)

6.4.redis的并发竞争(参考redis的面试题

主要解决方案分为:客户端的连接池;服务端利用setnx实现锁

6.5.redis的缓存失效策略以及主键失效策略(参考redis的面试题

volatile(有生命周期的key);

  volatile_lru,volatile_ttl,volatile_rand + allkey_lru,allkey_rand + no_envicition

6.6.watch、multi、exec等命令(参考redis的面试题

6.7.主从复制 (重要)

redis的主从复制是建立在内存快照持久化的基础上的;

关键词:快照,写命令缓存,异步复制,SYNC,BGSAVE,RDB文件

详细原理请查看文章:Redis核心概念(纯文字说明版,看绿色部分即可)中的“复制功能的运作原理”一节即可。

6.8. sentinal(哨兵)(同样可查看楼上文章,以及这篇有图解结构的说明文章)

  6.9. 缓存穿透,雪崩以及热点数据集中失效问题(注意概念的理解,可看草稿图

6.9.1.缓存世界中的三大问题及解决方案

6.9.2.Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法(7)

6.9.3.Redis架构之防雪崩设计:网站不宕机背后的兵法

   6.10. 其他

       6.10.1  也谈谈 Redis 和 Memcached 的区别(纯科普)

                 注意该文有以下一段话,值得回味:

                 Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,会在一定程度上存在内存碎片,Redis跟据存储命令参数,会把带过期时间的数据单独存放在一起,并把它们称为临时数据,非临时数据是永远不会被剔除的,即便物理内存不够,导致swap也不会剔除任何非临时数据(但会尝试剔除部分临时数据),这点上Redis更适合作为存储而不是cache。

 

 

七.linux

可以参考个人笔记:这里

其中比较容易理解的学习命令:awk查看统计Nginx访问日志(可以学习到uniq,sort,head,awk的用法 )

 

 

八.面向对象、设计模式

    8.1. 面向对象的相关原则

        个人整理的相关笔记(在此)

        8.1.1 六大原则实用帖

            六大原则(官方说明版本,科普帖)

            六大原则的php实现(有例子,容易理解,还不错)

        8.1.2 六大原则科普帖        

            六大原则相关图解(纯科普纯科普)

            SOLID原则(纯科普帖,比较长,讲的比较详细):

    8.2. 设计模式

         个人整理的相关笔记(在此)

         人人都能读懂的设计模式系列(php实现,很不错)

         (1):创建型模式;(2):结构型模式;(3):行为型模式;

 

 

 

九.算法

大数据算法解答套路

一致性hash算法以及应用:

    五分钟理解一致性哈希算法(讲原理,写的不错,学习)

    三分钟看懂一致性哈希算法(通过例子学习,不错)

个人整理的一些笔记

 

 

十.其他:

闭包的理解(还不错)

怎样用通俗的语言解释REST,以及RESTful

秒杀系统的设计与关注点(限流->削峰->异步处理->内存缓存->可拓展)

 

十一.在线学习的一些视频

360大牛带你横扫PHP职场 全面解读PHP面试

程序员价值最大化 - 如何在面试中脱颖而出

 

你可能感兴趣的:(心得体会)