作者:钟寓宛筠 | 来源:互联网 | 2023-07-26 17:03
一、持久化:1)Redis之所以速度非常快,原因redis的读写操作都是在内存中进行的;2)内存中读写完成后必然要存入到磁盘中,rdb和aof就是持久化的两种模式;二、RDB快照:
一、持久化:
1)Redis之所以速度非常快,原因redis的读写操作都是在内存中进行的;
2)内存中读写完成后必然要存入到磁盘中,rdb和aof就是持久化的两种模式;
二、RDB快照:
1)RDB就是将某一时刻的快照保存到磁盘中,即数据被保存下来;
2)可以在redis.conf中配置快照保存的频率,redis会自动保存快照;
900秒:变化1个即保存;
300秒:变化10个即保存;
60秒:变化10000个即保存;
3)隐患:
因为快照是根据时间点来保存的,如果时间点还未到,但服务器崩溃了,则崩溃时间到上个时间点的数据都丢失了;
4)docker中启动:
//挂一个数据卷在外面;
docker run -v /usr/local/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/docker/redis/conf/data:/data --name myredis -p 6379:6379 redis redis-server /usr/local/etc/redis/redis.conf
三、AOF(写命令):
1)AOF是将所有的读写操作以日志的方式保存到一个aof文件中,根据命令时间数据的恢复;
2)redis.conf配置:
说明:
(1)appendfilename:AOF 文件名称
(2)appendfsync:同步频率
always:每一条指令都立即生成日志,性能低;
everysec:每秒生成一次,性能好;
(3)appendonly:是否打开 AOF 持久化功能
3)AOF重写:
(1)当aof文件过大时,会执行重写;如set key 1,incr key 100次,会被重写为set key 100;
(2)redis.conf配置:
auto-aof-rewrite-percentage 100:超过最小体积,本次重写体积为100%,则为两倍;
auto-aof-rewrite-min-size 64mb:最小重写体积;
4)使用:
配置开启后挂一个数据卷:
docker run -v /usr/local/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/docker/redis/conf/data:/data --name myredis -p 6379:6379 redis redis-server /usr/local/etc/redis/redis.conf
三、两种方式选择:
两种都用!!
RDB 快照方便数据恢复; AOF有bug;