1.redis如何存储数据
1.首先数据是存在内存中,然后会备份到磁盘中去,即dump.rdb或者xxx.aof
- dump.db 定时备份
1.开辟一个新的进程,内存瞬时增肌两倍,不会影响当前的进程 - xxx.aof 增量备份
2.奇怪的注意点
- 如果是从库,那么它的config get xxx[dbfilename],出来数据不一样,?
- kill进程,删掉rdb =》数据消失,rdb会回来吗【当进行备份的时候就会重新自动创建出来】
- 写进去,重启机器,启动redis服务,删除rdb,get;=》会将rdb中的数据释放出来
- 写进去,重启机器,删除rdb,启动redis服务,get;=》数据将没有
- 两个不相关的redis进程,内存不共用;
- 从属进程,内存共用【应该会读取主的】,读的不能写
- 并且如果两个redis进程公用一个rdb,如果有相同字段,如果重启 =》 。。。
- 在启动的时候指定rdb,千万不要弄到同一个数据库去,不然就是个错误【以及日志文件等其他配置,都要不一样】
- 对于rdb的每次备份,都是备份内存中所有的数据,并非新改变的数据
- 接下来就是关于rdb文件备份的具体操作。。。。。。。。。。。。。。
3.rdb文件备份的具体操作
1.在bgsave的时候,会fork新的进程出来,因此不会影响之前的进程的读写,但内存占用会变大
2.save,阻塞的,但不会fork新的内存,适用于服务器内存不够的情况
网友评论