[redis]面试准备

1.不能再清晰的图了

preview

2.每一层涉及的知识点

高性能主线:

1.线程模型:

单reactor单线程.  这里只是说处理请求.  其他rdb/aof/主从复制等是起新的进程的.

2.数据结构:

内存层:

每个数据结构的特点.跳表是什么,以及数据结构的时间复杂度

存储层:

rdb:

      快照,可以配置例如900s内有三个变更就更新快照.  快照文件是二进制的 .rdb结尾的文件.  

      可以手动触发 

           save 同步的,阻塞

          bgsave  异步的 fork一个子进程.思考下.fork会阻塞吗?会的,因为子进程要复制父进程的内存,操作系统底层会采用写时复制策略,因此不会fork瞬间复制全部,but,虚拟内存空间这些还是要复制的.因此内存使用越大,复制虚拟内存地址约耗时.

        rdb优点:由于是二进制内容,使用rdb文件恢复很快

              缺点:可能有丢失,可能有停顿(fork)

aof:

追加写命令到.aof文件.为了避免越写越大,会有aof重建过程,重建就是会把一些命令合并,另外会开辟一块新内存,用于存储在重建过程中新更新的请求.

问题:每个命令都会追加到aof文件中吗?

看配置.

appendfsync no:Redis不会主动调用fsync去将AOF日志内容同步到磁盘,具体的操作依赖于操作系统.

appendfsync everysec: 每秒刷新一次

appednfsync always:每次写操作都会调用一次fsync.

 

优点:

1.丢失的数据更少.一般是1s更新一次

2.写入性能高.顺序写嘛

缺点:

1.数据太大了,因为这个类似binlog.也不适合做冷备.

2.消耗性能大

 

epoll网络模型:

       没啥说的.多路复用.

 

高可靠路线

主从复制:

https://blog.csdn.net/u012997470/article/details/110213144

哨兵机制:

https://blog.csdn.net/u012997470/article/details/113387574

 

 

高可扩展路线

分片 ,槽的分配

https://blog.csdn.net/u012997470/article/details/113393816

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值