• Redis11问


    Redis11问

    https://blog.csdn.net/qq_31960623/article/details/116427752

    1 基本数据类型

    • String
    • list
    • hash
    • set
    • zset

    2 redis为什么块

    1. 内存操作
    2. 优化过的数据结构
    3. 单线程无上下文切换
    4. 基于非阻塞的IO多路复用

    3 redis6.0为什么改为多线程

    redis使用多线程并不是放弃单线程 还是单线程模型处理客户端请求 多线程处理数据的读写和协议的解析 执行命令还是单线程;

    这样做的目的 redis的瓶颈时在IO而不是CPU 使用多线程提升IO

    4 热key解决方案

    1. 提前将热key打撒到不同的服务器
    2. 加入二级缓存 走内存查询

    5 缓存击穿 穿透 雪崩

    1. 击穿 单key并发访问过万 过期导致请求DB

      • 对key加锁更新
      • 异步刷新过期时间
    2. 穿透 查询不存在的值

      • key对应null值
      • 布隆过滤器 为0一定不存在; 存在的会误判雪崩
    3. 雪崩 多key失效 请求到DB

      • key不同失效时间
      • DB限流
      • 二级缓存 同热key

    6 redis过期策略

    1. 惰性删除 key查询对key检测 key过期?删除
    2. 定期删除 随机取key检查

    7 惰性+定期没有删除过期key怎么办?

    走到redis内存淘汰机制 已设置过期=定期

    1. volatile-lru: 定期key中 删除最近最少使用
    2. volatile-ttl: 定期key中 移除将要过期key
    3. volatile-random: 定期key中 随机
    4. allkeys-lru
    5. allkeys-random
    6. noeviction: 内存达到阈值 写入报错

    8 持久化方式有哪些?区别?

    RDB 可以通过 save阻塞 bgsave不阻塞 执行
    AOF 调用flushAppendOnlyFile函数决定是否要将aof_buf的内容保存到AOF文件中,可以通过配置appendfsync来决定。

    9 实现redis高可用?

    方案一: 主从架构 不能故障自动转移
    master挂了 需要手动修改配置
    方案二: 哨兵架构 故障自动转移 监控 通知功能
    master挂了 自动将slave提升为master

    10 redis集群原理

    redis集群是redis提供的分布式数据存储方案,集群通过数据分片sharding来进行数据的共享,同时提供复制和故障转移的功能。

    节点

    槽slot
    redis通过集群分片的形式来保存数据,整个集群数据库被分为16384个slot,集群中的每个节点可以处理0-16383个slot,当数据库16384个slot都有节点在处理时,集群处于上线状态
    当客户端向节点发送命令,如果刚好找到slot属于当前节点,那么节点就执行命令,反之,则会返回一个MOVED命令到客户端指引客户端转向正确的节点。(MOVED过程是自动的)

    故障转移
    如果节点A向节点B发送ping消息,节点B没有在规定的时间内响应pong,那么节点A会标记节点B为pfail疑似下线状态,同时把B的状态通过消息的形式发送给其他节点,如果超过半数以上的节点都标记B为pfail状态,B就会被标记为fail下线状态,此时将会发生故障转移,优先从复制数据较多的从节点选择一个成为主节点,并且接管下线节点的slot,整个过程和哨兵非常类似,都是基于Raft协议做选举。

    11 redis的事务机制

    Multi 开启事物 事物未开始前出错 不会执行
    Exec 执行事物 执行出线错误不会回滚 继续执行
    discard 放弃
    watch机制 事物开始前监听key有没有被改变 有改变就放弃事物

  • 相关阅读:
    字典
    字符串常用的方法
    切片,集合、文件处理
    蓝桥杯练习 Day6 题解
    spoj-ORDERS
    spoj-SUBSUMS
    spoj
    spoj --- ABCDEF
    C. Andryusha and Colored Balloons
    B. The Meeting Place Cannot Be Changed
  • 原文地址:https://www.cnblogs.com/albertXe/p/14947898.html
Copyright © 2020-2023  润新知