还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
方式 | save指令 | bgsave指令 |
---|---|---|
读写 | 同步 | 异步 |
阻塞客户端指令 | 是 | 否 |
额外消耗内存 | 否 | 是 |
启动新进程 | 否 | 是 |
1.2.3 特殊情况下保存数据
- 服务器运行过程中重启
debug reload
- 关闭服务器时指定保存数据
shutdown save
1.2.4 RDB总结
- 优点
- RDB是一个紧凑压缩的二进制文件,存储效率较高
- RDB内部存储的是redis在某个时间点的数据快照,非常适合用于数据备份,全量复制等场景
- RDB恢复数据的速度要比AOF快很多
- 应用:服务器中每X小时执行bgsave备份,并将RDB文件拷贝到远程机器中,用于灾难恢复。
- 缺点
- RDB方式无论是执行指令还是利用配置,无法做到实时持久化,具有较大的可能性丢失数据,在这里有人说,把RDB持久化的频率调高一点不久可以吗?(
save 1 1
)你想想看,每次改变一个key,就进行一次全量快照的拍摄,这个性能是非常低的。 - bgsave指令每次运行要执行fork操作创建子进程,要牺牲掉一些性能
- Redis的众多版本中未进行RDB文件格式的版本统一,有可能出现各版本服务之间数据格式无法兼容现象
- RDB方式无论是执行指令还是利用配置,无法做到实时持久化,具有较大的可能性丢失数据,在这里有人说,把RDB持久化的频率调高一点不久可以吗?(
1.2 AOF持久化
AOF(append only file)持久化:AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态,也就是每当 Redis 执行一个改变数据集的命令时(比如 SET), 这个命令就会被追加到 AOF 文件的末尾。
AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式
1.2.1 AOF持久化的三种策略
redis的AOF功能默认是关闭的,需要我们手动开启:
bind 127.0.0.1
port 6379
logfile "6379.log"
dir /root/redis-4.0.11/data
dbfilename drum-6379.rdb
rdbcompression yes
rdbchecksum yes
# save 10 2
daemonize yes
appendonly yes
appendfsync no
appendfilename appendonly-6379.aof
-
appendonly
- yes:开启aof功能
- no:关闭aof功能(默认值)
-
appendfsync
- always(每次):每次写入操作均同步到AOF文件中,高并发下性能较低。
- everysec(每秒):每秒将缓冲区中的指令同步到AOF文件中,默认配置
- no(系统控制):由操作系统控制每次同步到AOF文件的周期,一般为30s每次。
-
appendfilename:aof文件名称
-
dir:aof文件路径
注意:AOF只会保存服务器所执行的写(set,del,add 等)的命令,对于其他对结果集并没有造成影响的命令是不会写入aof文件的。
1.2.2 AOF重写
AOF 持久化是通过保存被执行的写命令来记录数据库状态的,所以AOF文件的大小随着时间的流逝一定会越来越大,其中就包含了很多不必要的命令,如set某个key两次,其结果肯定为最后一次,那么前面一次的命令就没有必要再记录下来。
为了解决此问题,Redis引入了AOF重写机制用于压缩aof文件大小。
1.2.2.1 AOF重写原理
AOF重写实质上是将当前进程中的数据直接转换为对应的命令保存到aof文件中,这样就不会造成命令资源的浪费但是这个函数会进行大量的写入操作,所以调用这个函数的线程将被长时间的阻塞,因为Redis服务器使用单线程来处理命令请求,那么重写AOF期间,服务器将无法处理客户端发送来的命令请求;因此redis底层采用子进程的方式来将数据同步到aof文件当中。
- 子进程在进行AOF重写期间,服务器进程还要继续处理命令请求,而新的命令可能对现有的数据进行修改,这会让当前数据库的数据和重写后的AOF文件中的数据不一致。
解决方案:
- 当子进程正在同步时,主进程接收到的所有命令将会暂时存放在缓冲区中,来保证子进程在工作时,主进程接收到的指令不能被保存到aof文件。
重写条件:
- 进程内已超时的数据不再写入文件
- 忽略无效指令,重写时使用进程内数据直接生成,这样新的AOF文件只保留最终数据的写入命令,如:
set age 20
set age 30
set age 40
最终合并为:
set age 40
- 对同一数据的多条写命令合并为一条命令,如:
rpush list a
rpush list b
rpush list c
rpush list d
最终合并为:
rpush list a b c d
AOF重写分为两种,一种为自动重写,另一种为手动重写。
1)手动重写
bgrewriteaof
执行完该命令后,会发现.aof文件变小了(前提是具备重写条件)。
2)自动重写
条件参数:
- auto-aof-rewrite-min-size:aof_current_size每次要大于此参数的倍数将会触发重写操作
- auto-aof-rewrite-percentage:重写百分比参数(默认百分之百)
在redis内部会自动维护以下几个参数:
- aof_current_size:当前aof文件大小
- aof_base_size:上一次执行完重写操纵时的aof文件大小
自动重写触发条件:
1、aof_current_size大于auto-aof-rewrite-min-size时将会触发重写,此后每次大于auto-aof-rewrite-min-size整倍数时就会触发一次重写操作。
2、(aof_current_size-aof_base_size)/aof_base_size大于等于auto-aof-rewrite-percentage时将会触发重写。
执行info Persistence
命令,查看当前参数
127.0.0.1:6379> info Persistence
# Persistence
loading:0
rdb_changes_since_last_save:11
rdb_bgsave_in_progress:0
rdb_last_save_time:1585142012
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:1
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:0
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:6385664
aof_current_size:138
aof_base_size:138
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0
- 配置自动重写redis.conf配置如下:
bind 127.0.0.1
port 6379
logfile "6379.log"
dir /root/redis-4.0.11/data
dbfilename drum-6379.rdb
rdbcompression yes
rdbchecksum yes
# save 10 2
daemonize yes
appendonly yes
appendfsync everysec
appendfilename appendonly-6379.aof
auto-aof-rewrite-min-size 0.5
1.3 总结
- RDB
- 优点
- RDB是基于数据快照的理念设计的,每一个rdb文件都是一个已经压缩过的二进制文件,存储效率较高
- 由于RDB是将数据全部存储在rdb文件中,即每个rdb文件都是原始数据,在恢复大数据集时的速度比 AOF 的恢复速度要快
- 缺点:
- 如果对数据恢复非常敏感,那么RDB的持久化效率将没有AOF的高,虽然RDB可以设置保存点save,但是因为RDB每次拍摄数据快照需要将此次数据快照的所有数据都写入rdb文件,虽然会fork出一个子进程帮我们工作,不会影响主进程的工作,但这并不是一个轻松的操作。会影响主进程的性能。
- RDB持久化方式并没有缓冲区的概念,如果rdb的子进程正在将数据写入到rdb文件,会导致数据库的数据和rdb文件中保存的数据不一致。
- 优点
- AOF
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。
最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
学习路线图
其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。
相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。
网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。
项目实战
最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!