Redis的配置文件为redis.conf
其中有这三句代码;
save 900 1 :含义:900秒之内如果做了不小于1个key的修改就做一次RDB持久化;
save 300 10 :含义:在300秒内有10个key改变了就执行RDB持久化;
save 60 10000 :含义:60秒之内如果做了不少于10000次的修改,就做一次持久化;
总结含义:就是900秒内只修改了一个key那么之后他会做一次持久化;300秒内修改了10个key那么它也会做一次持久化;60秒内做了10000次的修改,它也会做一次持久化;而如果配置文件中没有save RDB会被关掉的;
改的越多,那么它做持久化的频率就会越快;
RDB不适合很频繁(不适合实时存储)的去做持久化;因为他会阻塞进程;最适合做数据版本控制;
步骤:
(1)进入我们之前为了设置密码而创建的redis.conf 文件;
(2)在里面加上save ;
注意:save 可以写多个,但是逻辑不能写错,第一个数字应该是递减的;第二个数字是递增的;
(3)在里面写路径:为什么要在配置文件里写路径呢,主要是因为,RDB会持久化成一个本地文件进行存储数据,默认名字是dump.rdb 所以呢需要给他一个储存路径,这个为文件也就保存在这里;
#requirepass java 这是设置密码的
#save seconds changes 设置RDB的
save 5 1
save 3 2
dir /data #默认的储存路径 就是#/data/dump.rdb
注意:如果down掉我们的容器那么我们做的数据与设置也会一起给删掉!!
(4)为我们的储存文件做个数据卷,这样我们down掉容器之后呢,数据卷的文件不会丢失,所以文件也不会丢失;在docker-compose.yml 中做数据卷;
volumes:
- ./redis_conf/redis.conf:/usr/local/redis/redis.conf
- ./data:/data #数据卷映射RDB储存的文件;./data 代表当前目录
(5)如果想更改默认的文件名可以在配置文件redis.conf中加入 dbfilename ”dump1.rdb”
注意:除了RDB配置文件中的设置,还可以输入指令进行储存:save 可以触发RDB进行存储;还有bgsave 一样的效果;
save 和 bgsave 区别:bgsave是子线程进行储存(和在配置文件中配置save 10 10 原理一致),不会造成主线程阻塞;save是主线程进行存储,可能会造成主线程阻塞;但是因为save是主线程,所以性能高,适合大量的数据进行存储;当你一个星期保存一次的话save是更适合的;
。。。。。。。。。。。。。
嘻哈的简写笔记
。。。。。。。。。。。。。