1.复习内容
2.灵感代办
-
redis 集合的运算操作(交集并集差集)
-
三角函数
-
问题:上课容易看手机
- 解决:应该讲手机放远一些
3.学习内容
-
Redis数据持久化 ——RDB方式 (存数据)
-
特点:
- 保存真实数据,二进制形式保存在硬盘文件中
- 默认文件名:/var/lib/redis/dump.rdb
- dump文件的路径(配置文件中)
- dir /var/lib/redis 表示rdb等文件存放路径
- dbfilename dump.rdb
- logfile 查看redis操作日志
-
RDB缺点
- RDB将服务器所有数据保存起来,非常耗费资源,隔一段时间才能备份,否则严重影响服务器性能
- 会丢失一些数据
-
创建rdb文件的两种方式:
-
方式一(推荐使用)
- 设置配置文件中的条件,满足时候自己备份
- 使用:
- 命令行:save 300 10
- 300是距离上次备份的秒
- 10是修改redis的次数
- 执行的操作是bgsave
- 多个条件,满足一个就执行
-
方式二:
- 特点:
- redis服务器会被阻塞,完成命令才会处理请求,如果存在RDB则覆盖文件
- 使用时机:
- 人少时候定时备份,
- 命令
- SAVE 或者 BGSAVE
- BGSAVE就是开一个进程去备份,可以继续处理redis请求(消耗更多资源)
-
Redis数据持久化——AOF(AppendOnlyFile)
-
特点:
- 默认没有开启
- 将redis的命令保存下来
-
配置文件中
-
选项:appednonly yes
- 打开AOF数据持久化
-
选项:appendfilename “appendonly.aof”
- append文件名称
-
选项:appendfsync
-
alwarys(速度慢)
- 写入一条命令,就将命令保存,不丢失数据
-
everysec(默认选项,很快)
- 每一秒将命令写入文件,顶多丢失一秒数据
-
no(很快)
- 不主动写入,由操作系统决定,丢失数据不确定
-
AOF持久化的原理以及优点
- 原理:
- 修改数据命令执行,这条命令就被添加到AOF文件末尾
- 执行AOF命令,就可以还原数据
- 优点:
- 根据自己需求调整AOF,在意外情况丢失很少的数据(一秒钟)
-
AOF文件中是否会产生冗余
- 问题:
- AOF一直存放,大小也会成倍增加
- AOF文件冗余,读写速度慢
- 解决
- 重写AOF文件,产生一个新的AOF文件,类似压缩一下
- AOF重写期间,服务器不阻塞
- 重写方法:
- 1.手动重写
- BFREWRITEAOF
- 2.设定规则,自动重写
- auto-aof-rewrite-percentage 100
- 增加一倍大小(100%),重写
- auto-aof-rewrite-min-size 64mb
- 增加64Mb就重写一次
- 重写规则:
- 将命令简化,合并
- 多个hset 编程hmset
-
安全问题
- 系统写入文件有一个buffer区,填充满了才会写入数据,所以不能保证AOF不会丢失数据
- 当命令真实写入文件,才不会丢失
- 停机时丢失的数量,取决命令写入的速度
- 越早写入硬盘,停机时丢的数据越少
-
RDB和AOF备份的区别
- redis存放重要数据,一条都不能丢失,要是用always
- 一个服务器可以开多个redis服务
- redis可以用来缓存,可以用来存放数据
-
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.今天都复习了之前的什么内容
-
redis 集合的运算操作(交集并集差集)
-
三角函数
-
问题:上课容易看手机
- 解决:应该讲手机放远一些
3.学习内容
-
Redis数据持久化 ——RDB方式 (存数据)
-
特点:
- 保存真实数据,二进制形式保存在硬盘文件中
- 默认文件名:/var/lib/redis/dump.rdb
- dump文件的路径(配置文件中)
- dir /var/lib/redis 表示rdb等文件存放路径
- dbfilename dump.rdb
- logfile 查看redis操作日志
-
RDB缺点
- RDB将服务器所有数据保存起来,非常耗费资源,隔一段时间才能备份,否则严重影响服务器性能
- 会丢失一些数据
-
创建rdb文件的两种方式:
-
方式一(推荐使用)
- 设置配置文件中的条件,满足时候自己备份
- 使用:
- 命令行:save 300 10
- 300是距离上次备份的秒
- 10是修改redis的次数
- 执行的操作是bgsave
- 多个条件,满足一个就执行
-
方式二:
- 特点:
- redis服务器会被阻塞,完成命令才会处理请求,如果存在RDB则覆盖文件
- 使用时机:
- 人少时候定时备份,
- 命令
- SAVE 或者 BGSAVE
- BGSAVE就是开一个进程去备份,可以继续处理redis请求(消耗更多资源)
-
Redis数据持久化——AOF(AppendOnlyFile)
-
特点:
- 默认没有开启
- 将redis的命令保存下来
-
配置文件中
-
选项:appednonly yes
- 打开AOF数据持久化
-
选项:appendfilename “appendonly.aof”
- append文件名称
-
选项:appendfsync
-
alwarys(速度慢)
- 写入一条命令,就将命令保存,不丢失数据
-
everysec(默认选项,很快)
- 每一秒将命令写入文件,顶多丢失一秒数据
-
no(很快)
- 不主动写入,由操作系统决定,丢失数据不确定
-
AOF持久化的原理以及优点
- 原理:
- 修改数据命令执行,这条命令就被添加到AOF文件末尾
- 执行AOF命令,就可以还原数据
- 优点:
- 根据自己需求调整AOF,在意外情况丢失很少的数据(一秒钟)
-
AOF文件中是否会产生冗余
- 问题:
- AOF一直存放,大小也会成倍增加
- AOF文件冗余,读写速度慢
- 解决
- 重写AOF文件,产生一个新的AOF文件,类似压缩一下
- AOF重写期间,服务器不阻塞
- 重写方法:
- 1.手动重写
- BFREWRITEAOF
- 2.设定规则,自动重写
- auto-aof-rewrite-percentage 100
- 增加一倍大小(100%),重写
- auto-aof-rewrite-min-size 64mb
- 增加64Mb就重写一次
- 重写规则:
- 将命令简化,合并
- 多个hset 编程hmset
-
安全问题
- 系统写入文件有一个buffer区,填充满了才会写入数据,所以不能保证AOF不会丢失数据
- 当命令真实写入文件,才不会丢失
- 停机时丢失的数量,取决命令写入的速度
- 越早写入硬盘,停机时丢的数据越少
-
RDB和AOF备份的区别
- redis存放重要数据,一条都不能丢失,要是用always
- 一个服务器可以开多个redis服务
- redis可以用来缓存,可以用来存放数据
-
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.今天都复习了之前的什么内容
Redis数据持久化 ——RDB方式 (存数据)
-
特点:
- 保存真实数据,二进制形式保存在硬盘文件中
- 默认文件名:/var/lib/redis/dump.rdb
- dump文件的路径(配置文件中)
- dir /var/lib/redis 表示rdb等文件存放路径
- dbfilename dump.rdb
- logfile 查看redis操作日志
-
RDB缺点
- RDB将服务器所有数据保存起来,非常耗费资源,隔一段时间才能备份,否则严重影响服务器性能
- 会丢失一些数据
-
创建rdb文件的两种方式:
-
方式一(推荐使用)
- 设置配置文件中的条件,满足时候自己备份
- 使用:
- 命令行:save 300 10
- 300是距离上次备份的秒
- 10是修改redis的次数
- 执行的操作是bgsave
- 多个条件,满足一个就执行
- 命令行:save 300 10
-
方式二:
- 特点:
- redis服务器会被阻塞,完成命令才会处理请求,如果存在RDB则覆盖文件
- 使用时机:
- 人少时候定时备份,
- 命令
- SAVE 或者 BGSAVE
- BGSAVE就是开一个进程去备份,可以继续处理redis请求(消耗更多资源)
- 特点:
-
Redis数据持久化——AOF(AppendOnlyFile)
-
特点:
- 默认没有开启
- 将redis的命令保存下来
-
配置文件中
-
选项:appednonly yes
- 打开AOF数据持久化
-
选项:appendfilename “appendonly.aof”
- append文件名称
-
选项:appendfsync
-
alwarys(速度慢)
- 写入一条命令,就将命令保存,不丢失数据
-
everysec(默认选项,很快)
- 每一秒将命令写入文件,顶多丢失一秒数据
-
no(很快)
- 不主动写入,由操作系统决定,丢失数据不确定
-
-
-
AOF持久化的原理以及优点
- 原理:
- 修改数据命令执行,这条命令就被添加到AOF文件末尾
- 执行AOF命令,就可以还原数据
- 优点:
- 根据自己需求调整AOF,在意外情况丢失很少的数据(一秒钟)
- 原理:
-
AOF文件中是否会产生冗余
- 问题:
- AOF一直存放,大小也会成倍增加
- AOF文件冗余,读写速度慢
- 解决
- 重写AOF文件,产生一个新的AOF文件,类似压缩一下
- AOF重写期间,服务器不阻塞
- 重写方法:
- 1.手动重写
- BFREWRITEAOF
- 2.设定规则,自动重写
- auto-aof-rewrite-percentage 100
- 增加一倍大小(100%),重写
- auto-aof-rewrite-min-size 64mb
- 增加64Mb就重写一次
- auto-aof-rewrite-percentage 100
- 1.手动重写
- 重写规则:
- 将命令简化,合并
- 多个hset 编程hmset
- 问题:
-
安全问题
- 系统写入文件有一个buffer区,填充满了才会写入数据,所以不能保证AOF不会丢失数据
- 当命令真实写入文件,才不会丢失
- 停机时丢失的数量,取决命令写入的速度
- 越早写入硬盘,停机时丢的数据越少
RDB和AOF备份的区别
- redis存放重要数据,一条都不能丢失,要是用always
- 一个服务器可以开多个redis服务
- redis可以用来缓存,可以用来存放数据
-
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
-
python中使用redis多个参数
- 可能使用字典,使用元组
-
liunx查看文件倒数文件,正数文件
-
python读取配置文件
-
python上下文
- 个人理解就是上面可以开始一部分(进入),中间一部分(操作),下面一部分(离开)
- python上下文管理器规定了某个对象的使用范围,当进入或者离开了使用范围,会有相应的操作,多用于资源的分配和释放上,即在开始时分配资源,结束时释放资源。
- @contextmanager 注解和yield语句结合使用
-
python with操作
- 不能对任意对象使用with,需要上下文管理
- from contextlib import contextmanager
- 可以将类编程上下文处理方式解决问题
- 如果with带as 需要__enter__返回对象,__exit__方法用来退出销毁,with目标要是一个对象,而不是一个类
5.知识内容个人梳理
6.今天都复习了之前的什么内容