前言
高并发十分考验架构师功底,它也是分布式架构设计中必须考虑的因素之一。要知道,光靠服务器堆是没有出路的。
想看看大牛是怎么面对高并发的?想知道BATJ大厂是怎么设计高可用架构的?这里有可参考的实践案例,干货满满,或许能对你有所启发。
Redis常用的数据类型
Redis的五种常用的数据类型分别是:String、Hash、List、Set和Sorted set
Redis的使用场景
1.Counting(计数)
2.展示最近、最热、点击率最高、活跃度最高等等条件的top list
3.用户最近访问记录也是redis list的很好应用场景
4.通过list的lpop及lpush接口进行队列的写入和消费
5.Redis 的Lua的功能扩展实际给Redis带来了更多的应用场景,你可以编写若干command组合作为一个小型的非阻塞事务或者更新逻辑
6.Redis提供的主从数据同步功能,其实是对cache的一个强有力功能扩展
[](()4.2 组的创建
指令:
groupadd 组名
[](()4.3 文件和目录的所有者
一般文件被哪个用户创建的,该用户就自然成为了该文件的所有者
查看文件所有者指令:
ls -ahl
修改文件所有者指令:
chown 用户名 文件名
[](()4.4 文件和目录的所在组
当某个用户创建了一个文件后,该文件所在组就是该用户所在组
查看所在组指令:
ls -ahl
修改文件所在组指令:
chgrp 组名 文件名
[](()4.5 其他组
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其他组
[](()4.6 改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组
改变用户所在组指令:
usermod -g 新组名 用户名
改变用户登录的初始目录指令:
usermod -d 目录名 用户名
注意:改变户用登录的初始目录,用户需要拥有进入该目录的权限
[](()5. 权限管理
===========================================================================
[](()5.1 介绍
当我们在终端输入指令:ls -l,就会有如下的内容
那这些信息都分别有哪些含义呢?
前十位:即第0位到第9位
- 第0位: 确定文件类型(d、-、l、c、b)
l:是链接,相当于 windows 的快捷方式
d:是目录,相当于 windows 的文件夹
\-:是普通文件
c:是字符设备文件,如鼠标。键盘
b:是块设备,如硬盘
- 第1-3位: 确定所有者拥有该文件的权限(rwx)
- 第4-6位: 确定所在组拥有该文件的权限(rwx)
- 第7-9位: 确定其他用户拥有该文件的权限(rwx)
第十一位的数字:
如果这是一个文件,则该数字为1,如果这是一个目录,则该数字=该目录的子目录数
第一个root:
这里表示用户
第二个root:
这里表示所在组
后面的一串数字:
表示文件大小,单位是字节
再后面的日期:
表示最后一次修改该文件或者目录时的时间
最后的字符串
表示文件名或目录名
[](()5.2 rwx 权限解释
我们上述的第1-9位数都通过 rwx 表示对权限的表示,那么 rwx 都分表意味着什么呢?
- rwx 作用到文件:
\[r\] 代表可读(read):可以读取查看
\[w\] 代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
\[x\] 代表可执行(execute):可以被执行
- rwx 作用到目录:
\[r\] 代表可读(read):可以读取,ls 查看目录内容
\[w\] 代表可写(write):可以修改,对目录内创建+删除+重命名文件
\[x\] 代表可执行(execute):可以进入该目录
注意:
- 可以用数字表示 rwx:r=4、w=2、x=1,因此 rwx=7
[](()5.3 chmod 修改权限
通过 chmod 指令可以修改文件或者目录的权限
- 方式一: +、-、= 变更权限
u:表示所有者、g:表示所在组、o:表示其他组、a:表示所有人(u、g、o的总和)
1)`chmod u=rwx,g=rx,o=x 文件名/目录名`
2)将其他组赋予写的权限的指令:`chmod o+w 文件名/目录名`
3)将所有人的执行的权限都去掉的指令:`chmod a-x 文件/目录名`
- 方式二: 通过数字变更权限
r=4、w=2、x=1、rwx=4+2+1(可以组合,如3=wx)
指令:`chmod 751 文件名/目录` **等价于** `chmod u=rwx,g=rx,o=x 文件名/目录名`
[](()5.4 chown 修改文件/目录所有者
通过 chown 指令可以修改文件或目录所有者
改变所有者指令:
chown 新的所有者 文件/目录
改变所有者和所在组指令:
chown 新的所有者:新的所在组 文件/目录
注意:
如果要修改目录,并使其所有子文件和目录递归生效,则要加上:
-R
[](()5.5 chgrp 修改文件/目录所在组
通过 chgrp 指令可以修改文件或目录所在组
改变所在组指令:
chgrp 新的所在组 文件/目录
注意:
如果要修改目录,并使其所有子文件和目录递归生效,则要加上:
-R
通过 chown 指令可以修改文件或目录所有者
改变所有者指令:
chown 新的所有者 文件/目录
改变所有者和所在组指令:
chown 新的所有者:新的所在组 文件/目录
注意:
如果要修改目录,并使其所有子文件和目录递归生效,则要加上:
-R
[](()5.5 chgrp 修改文件/目录所在组
通过 chgrp 指令可以修改文件或目录所在组
改变所在组指令:
chgrp 新的所在组 文件/目录
注意:
如果要修改目录,并使其所有子文件和目录递归生效,则要加上:-R
总结:绘上一张Kakfa架构思维大纲脑图(xmind)
其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?
若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理
梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。
-
Kafka入门
-
为什么选择Kafka
-
Kafka的安装、管理和配置
-
Kafka的集群
-
第一个Kafka程序
-
Kafka的生产者
-
Kafka的消费者
-
深入理解Kafka
-
可靠的数据传递
-
Spring和Kafka的整合
-
SpringBoot和Kafka的整合
-
Kafka实战之削峰填谷
-
数据管道和流式处理(了解即可)
能上传,文章里用的是图片版)进行整体架构的梳理
梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。
-
Kafka入门
-
为什么选择Kafka
-
Kafka的安装、管理和配置
-
Kafka的集群
-
第一个Kafka程序
-
Kafka的生产者
-
Kafka的消费者
-
深入理解Kafka
-
可靠的数据传递
-
Spring和Kafka的整合
-
SpringBoot和Kafka的整合
-
Kafka实战之削峰填谷
-
数据管道和流式处理(了解即可)
[外链图片转存中…(img-sZXiqPJY-1649753263889)]
[外链图片转存中…(img-VEHpYcfi-1649753263891)]