Reds持久化

支持两种方式
RDB 在指定的时间间隔内 把内存的数据快照到磁盘 默认方式
AOF 所有server执行的命令记录到磁盘,启动时在执行一遍 在尽量减少丢数据的情况下使用,类似MySQL的binlog

RDB模式
vim /etc/redis/6379.conf
142 save 900 1 900秒有1次改变就快照一次写入磁盘
143 save 300 10 300秒有10次改变写入磁盘
144 save 60 10000 60秒有10000次改变写入磁盘
165 rdbcompression yes 可以关掉压缩功能no
177 dbfilename dump_6379.rdb 保存的文件名称
187 dir /var/lib/redis_6379 保存路径
如果要禁用RDB模式下的持久化删除 142 143 144 这三行即可

127.0.0.1:6379> SAVE 会造成阻塞 redis会先执行save不操作其他
127.0.0.1:6379> BGSAVE 后台操作会新起一个进程不会造成阻塞
Background saving started

恢复方法:
redis再次启动时会自动读取备份文件
优点:利于恢复 备份文件为二进制文件体积小 对性能衰减小 数据恢复时间短
缺点:每次保存都需要fock去一个子进程 对数据量大的时候 会有短暂的延迟 性能衰减

AOF模式
vim /etc/redis/6379.conf
504 appendonly yes
508 appendfilename “appendonly.aof” 文件名称
535 appendfsync everysec 存储方式

AOF持久化存储方式
appendfsync always #收到写命令后就立即写入磁盘,效率最差,效果最好
appendfsync everysec #每秒写入磁盘一次,效率与效果居中
appendfsync no #完全依赖操作系统,效率最佳,效果没法保证

no-appendfsync-on-rewrite如果该参数设置为no,是最安全的方式,不会丢失数据,但是要忍受阻塞的问题如果设置为yes呢?这就相当于将appendfsync设置为no,这说明并没有执行磁盘操作,只是写入了缓冲区,因此这样并不会造成阻塞(因为没有竞争磁盘),但是如果这个时候redis挂掉,就会丢失数据。丢失多少数据呢?在linux的操作系统的默认设置下,最多会丢失30s的数据。

存储路径与RDB路径相同
/var/lib/redis_6379/

AOF模式有一个重写功能 比如 set a 1 set a 2 set a 3 只会记录最后一条 set a 3

AOF恢复数据方法
指定的appendonly值,在文件中搜索appendonly把默认的"no"改为"yes"。这句配置意思是Redis服务重启后,默认不加载AOF持久化文件恢复数据,而是去找RDB持久化文件恢复;如果修改为"yes"后,发现有AOF文件,会首先加载AOF文件恢复数据

修复AOF 文件出错
redis-check -aof 文件名

两个持久化功能可以同时启用

### 关于REDS数据集 #### 下载与使用说明 REDS 图像训练数据集是一个专门针对视频超分辨率重建设计的数据集[^1]。该数据集中包含了超过300个高质量的视频序列,这些视频被分为7个不同的场景类别。为了方便研究人员获取这一宝贵资源,官方提供了详细的【下载地址】。 对于初次使用者来说,在开始之前应当先访问项目主页 `https://gitcode.com/Open-source-documentation-tutorial/d4b4f` 获取最新版本的信息以及任何可能存在的更新日志或注意事项。完成注册登录之后即可按照指引轻松获得所需文件。 #### 数据集特征介绍 REDS 数据集具有以下几个显著特点: - **高时间一致性**:所有帧之间保持良好的时间同步关系; - **多视角拍摄**:部分序列提供多个摄像角度的画面记录; - **复杂光照条件变化**:涵盖了白天黑夜等各种不同环境下的影像资料; - **多样化运动模式**:包括但不限于平移、缩放等相机动作造成的物体位移现象; 此外值得注意的是,尽管 REDS 主要面向视频处理领域研究而构建,其丰富的特性同样适用于其他计算机视觉任务如目标检测跟踪等方面的研究探索工作。 ```python import os from PIL import Image def load_reds_dataset(path_to_dataset): frames = [] # 假设路径结构为 path_to_dataset/scene_*/camera_*.png scenes = sorted([d for d in os.listdir(path_to_dataset) if 'scene' in d]) for scene in scenes: full_path = os.path.join(path_to_dataset, scene) images = [img for img in os.listdir(full_path) if img.endswith('.png')] images.sort() # 确保按顺序读取 for image_name in images: frame = Image.open(os.path.join(full_path, image_name)) frames.append(frame) return frames ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值