zoukankan      html  css  js  c++  java
  • Redis的两种数据持久化方法

    redis运行时将磁盘中的数据加载到内存中,如果运行期间杀死进程,更新的数据就不能保存到磁盘中,这样的损失是很大的,因此数据持久化显得尤为重要。先试试不保存的情况,

    重启服务器,再验证

    这说明刚才设置的a没有写入到磁盘中

    持久化的两种方法

    1.RDB快照

      分为手动和自动,手动的命令为save和bgsave,save会阻塞当前进程,保存期间不能进行任何响应,bgsave会fork出一个子进程来保存数据,要注意的是,保存的数据是fork时的数据,fork之后的数据还是在内存中,没有持久化,因此如果此时退出进程,还是有部分数据会丢失

    运行之后,会在redis的目录下多出一个dump.rdb文件

     这个就是当前数据库的一个快照,下次启动后,会自动读取其中的内容,重启服务器再运行

    之前设置的a就保存了,这是手动的保存快照,自动保存需打开配置文件进行配置,打开配置文件redis.windows.conf

    save 900 1 表示900秒内如果一个1个key的值被改变就做快照,以此类推。满足一个条件就保存

    2.AOF

    同样打开配置文件

    将no改为yes,开启AOF持久化,接下来的每一条写操作都会被记录到appendonly.aof文件中,但是该文件不会立即写入到磁盘,而是写到缓存中,多久从缓存写到磁盘,这个就是我们来配置了

     appendfsync always 

             #收到写命令后就立即写入磁盘,效率最差,效果最好
        appendfsync everysec

             #每秒写入磁盘一次,效率与效果居中
        appendfsync no 

             #完全依赖操作系统,效率最佳,效果没法保证

    系统默认的是everysec

      二者比较

    1.AOF由于文件大,即使是有rewrite机制,也比RDB大得多,所以启动效率更低

    2.AOF的数据安全性更高,最大限度的避免数据丢失,这从他们的保存策略中就可以看出

  • 相关阅读:
    Serverless
    使用excelJS实现excel文件转json文件
    使用excelJS实现json文件转excel文件
    git rebase 和 git merge的异同
    JS 箭头函数与普通函数的区别
    JS 节流函数(throttle)与防抖函数(debounce)
    http协议解析
    前端必会的js知识总结整理
    前端必会css整理
    推荐几个有趣的在线调试工具
  • 原文地址:https://www.cnblogs.com/diwangguilai/p/10974248.html
Copyright © 2011-2022 走看看