没有合适的资源?快使用搜索试试~ 我知道了~
IT运维面试宝典V1.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 4 浏览量
2021-12-18
11:18:13
上传
评论 5
收藏 2.65MB DOCX 举报
温馨提示
试读
64页
本文涵盖IT运维领域常见中间件的面试常问问题,包括mysql redis Tomcat nginx zabbix ansile docker jdk
资源推荐
资源详情
资源评论
一、Redis
1. redis 半持久化与全持久化区别
RDB:
半持久化 RDB 模式也是 Redis 备份默认方式,是通过快照(snapshotting)完成的,当
符合在 Redis.conf 配置文件中设置的条件时 Redis 会自动将内存中的所有数据进行快照并存
储在硬盘上,完成数据备份
Redis 默认会将快照文件存储在 Redis 数据目录,默认文件名为:dump.rdb 文件,Redis
在进行快照的过程中不会修改 RDB 文件,只有快照结束后才会将旧的文件替换成新的,也
就是说任何时候 RDB 文件都是完整的,这使得我们可以通过定时备份 RDB 文件来实现
Redis 数据库备份。
(每隔一定时间间隔备份数据,默认文件名为:dump.rdb 文件)
AOF:
如果数据很重要无法承受任何损失,可以考虑使用 AOF 方式进行持久化,默认 Redis
没有开启 AOF(appendonlyfile)方式的全持久化模式。
在启动时 Redis 会逐个执行 AOF 文件中的命令来将硬盘中的数据载入到内存中,载入
的速度相较 RDB 会慢一些,开启 AOF 持久化后每执行一条会更改 Redis 中的数据的命令,
Redis 就会将该命令写入硬盘中的 AOF 文件。AOF 文件的保存位置和 RDB 文件的位置相同,
都是通过 dir 参数设置的,默认的文件名是 appendonly.aof,可以通过 appendfilename 参数
修改该名称。
(每发生一次数据变化都做备份 appendonly.aof)
2. redis 数据结构类型
string(字符串)、list(链表)、set(集合)、zset(有序集合)和 hash(哈希类型)
3. redis 集群三种方式
主从模式原理
同 Mysql 主从复制的原因一样,Redis 虽然读取写入的速度都特别快,但是也会产生读
压力特别大的情况。为了分担读压力,Redis 支持主从复制,Redis 的主从结构可以采用一
主多从或者级联结构,Redis 主从复制可以根据是否是全量分为全量同步和增量同步
优点:
1、解决数据备份问题
2、做到读写分离,提高服务器性能
缺点:
1、每个客户端连接 redis 实例的时候都是指定了 ip 和端口号的,如果所连接的 redis 实
例因为故障下线了,而主从模式也没有提供一定的手段通知客户端另外可连接的客户端地
址,因而需要手动更改客户端配置重新连接
2、主从模式下,如果主节点由于故障下线了,那么从节点因为没有主节点而同步中断,
因而需要人工进行故障转移工作
3、无法实现动态扩容
Sentinel(哨兵)模式:
Sentinel(哨兵)是 Redis 的高可用性解决方案:由一个或多个 Sentinel 实例组成的
Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被
监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主
服务器。
优点
1、Master 状态监测
2、如果 Master 异常,则会进行 Master-slave 转换,将其中一个 Slave 作为 Master,将
之前的 Master 作为 Slave
3、Master-Slave 切换后,master_redis.conf、slave_redis.conf 和 sentinel.conf 的内容都会
发生改变,即 master_redis.conf 中会多一行 slaveof 的配置,sentinel.conf 的监控目标会随之
调换
缺点:
1、如果是从节点下线了,sentinel 是不会对其进行故障转移的,连接从节点的客户端
也无法获取到新的可用从节点
2、无法实现动态扩容
cluster 模式
在这个图中,每一个蓝色的圈都代表着一个 redis 的服务器节点。它们任何两个节点之
间都是相互连通的。客户端可以与任何一个节点相连接,然后就可以访问集群中的任何一
个节点。对其进行存取和其他操作。
一般集群建议搭建三主三从架构,三主提供服务,三从提供备份功能。
每一个节点都存有这个集群所有主节点以及从节点的信息。
它们之间通过互相的 ping-pong 判断是否节点可以连接上。如果有一半以上的节点去
ping 一个节点的时候没有回应,集群就认为这个节点宕机了,然后去连接它的备用节点。
如果某个节点和所有从节点全部挂掉,我们集群就进入 faill 状态。还有就是如果有一半以
上的主节点宕机,那么我们集群同样进入发力了状态。这就是我们的 redis 的投票机制,具
体原理如下图所示:
(1)投票过程是集群中所有 master 参与,如果半数以上 master 节点与 master 节点通信超
时(cluster-node-timeout),认为当前 master 节点挂掉.
(2):什么时候整个集群不可用(cluster_state:fail)?
a:如果集群任意 master 挂掉,且当前 master 没有 slave.集群进入 fail 状态,也可以理解成
集群的 slot 映射[0-16383]不完整时进入 fail 状态.ps:redis-3.0.0.rc1 加入 cluster-require-full-
coverage 参数,默认关闭,打开集群兼容部分失败.
b:如果集群超过半数以上 master 挂掉,无论是否有 slave,集群进入 fail 状态.
优点:
1、有效的解决了 redis 在分布式方面的需求
2、遇到单机内存,并发和流量瓶颈等问题时,可采用 Cluster 方案达到负载均衡的目
的
3、可实现动态扩容
4、P2P 模式,无中心化
5、通过 Gossip 协议同步节点信息
6、自动故障转移、Slot 迁移中数据可用
缺点:
1、架构比较新,最佳实践较少
2、为了性能提升,客户端需要缓存路由表信息
3、节点发现、reshard 操作不够自动化。
4.Redis 重写机制
随着命令不断写入 文件会越来越大为了解决这个问题 引入了
重写机制压缩文件体积。 文件重写是将 进程内的数据转化为
写命令同步到新 文件的过程。简单说就是将对同一个数据的若干个条命令
执行结果转化成最终数据对应的指令进行记录。
AOF 重写作用
降低磁盘占用量提高磁盘利用率
提高持久化效率降低持久化写时间提高 性能
降低数据恢复用时提高数据恢复效率
AOF 重写规则
忽略已过期数据;进程内已超时的数据不再写入文件
忽略无效指令重写时使用进程内数据直接生成这样新的 文件只保留最终数据
的写入命令
如 、、、、 等
对同一数据的多条命令合并为一条命令
如 、、 可以转化为
为防止数据量过大造成客户端缓冲区溢出对 、、、 等类型每条
指令最多写入 个元素
剩余63页未读,继续阅读
资源评论
- lidongming19882022-04-19用户下载后在一定时间内未进行评价,系统默认好评。
哈工大-凌梦
- 粉丝: 13
- 资源: 97
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功