2020.6.2 Redis Day3

发布于 2020-06-02  72 次阅读


Table of Contents

RDB持久化 AOF持久化
全量备份,一次保存全部 增量备份,一次保存一个阶段
保存间隔长 默认一秒钟,随时可保存
数据还原快 数据还原略慢
SAVE命令阻塞,手动BGSAVE命令不阻塞 AOF不会阻塞服务器
更适合数据备份 适合保存数据
  • Redis主从复制

    • 原理:
      • 1.一个主服务器Master,多个从服务器Slaves
      • 2.网络正常,Master会将自己数据更新同步给slaves
      • 3.master可以读写,slaves只能读
    • 方式一:
      • redis-server –port 6300 –slaveof 127.0.0.1 6379
      • 在本地主机开一个redis 端口6300 ,属于本地6379 redis
      • slaveof no one是取消主从服务器
    • 方式二:
      • 在从数据控中设置
      • 登录redis,进入命令行中
      • slaveof 127.0.0.1 6379
      • slaveof no one是取消主从服务器
    • 方式三 修改配置文件:
      • 修改配置文件
        • 配置文件名:redis_6300.conf
        • 选项:slaveof 127.0.0.1 6379
        • 选项:port 6300
    • 主从服务器的问题总结
      • master可以有多个slave,slave下线问题不大
      • maser下线,无法处理请求,问题很大
      • 使用一台主机,让他slaveof no one 变成主服务器
      • 让其余从服务器指向这台主服务器
      • 以上过程,可以用sentine哨兵,实现故障转移操作
  • Redis 哨兵Sentinel官方提供高可用

    • 原理
      • sentinel 不断检查master和slave是否运行正常
      • 每一个sentinel 可以监控多个master和slaves
    • 使用:
      • 1.安装sentinel程序
      • 2.新建配置文件sentinel.conf
      • 3.写入配置
        • port 26379
        • Sentinel monitor name 127.0.0.1 6379 1
        • 最后的参数是投票机制,最好是单数
      • 4.启动sentinel
        • redis-sentinel sentinel.conf(常用方式)
        • redis-sentinel sentinel.conf –sentinel
  • Redis 分布式锁

    • 加锁就相当于 set key value nx
      • 不能创建内容,所以拿不到1,不能执行里面代码
    • 解锁就相当于 del key
  • 4.扩展延伸知识

    • python中使用redis多个参数

      • 可能使用字典,使用元组
    • liunx查看文件倒数文件,正数文件

    • python读取配置文件

    • python上下文

      • 个人理解就是上面可以开始一部分(进入),中间一部分(操作),下面一部分(离开)
      • python上下文管理器规定了某个对象的使用范围,当进入或者离开了使用范围,会有相应的操作,多用于资源的分配和释放上,即在开始时分配资源,结束时释放资源。
      • @contextmanager 注解和yield语句结合使用
    • python with操作

      • 不能对任意对象使用with,需要上下文管理
      • from contextlib import contextmanager
        • 可以将类编程上下文处理方式解决问题
      • 如果with带as 需要__enter__返回对象,__exit__方法用来退出销毁,with目标要是一个对象,而不是一个类

    5.知识内容个人梳理

    6.今天都复习了之前的什么内容