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.今天都复习了之前的什么内容
python中使用redis多个参数
- 可能使用字典,使用元组
liunx查看文件倒数文件,正数文件
python读取配置文件
python上下文
- 个人理解就是上面可以开始一部分(进入),中间一部分(操作),下面一部分(离开)
- python上下文管理器规定了某个对象的使用范围,当进入或者离开了使用范围,会有相应的操作,多用于资源的分配和释放上,即在开始时分配资源,结束时释放资源。
- @contextmanager 注解和yield语句结合使用
python with操作
- 不能对任意对象使用with,需要上下文管理
- from contextlib import contextmanager
- 可以将类编程上下文处理方式解决问题
- 如果with带as 需要__enter__返回对象,__exit__方法用来退出销毁,with目标要是一个对象,而不是一个类
6.今天都复习了之前的什么内容