Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用redis禁用持久性?_Redis - Fatal编程技术网

如何使用redis禁用持久性?

如何使用redis禁用持久性?,redis,Redis,我想知道如何在redis中禁用presistence。这里提到了这样做的可能性:。我的意思和这里描述的完全一样。任何帮助都将不胜感激 要禁用Redis中的所有数据持久性,请在Redis.conf文件中执行以下操作: 通过将appendonly配置指令设置为no(这是默认值)来禁用AOF。像这样: appendonly no 通过注释所有save配置指令(默认情况下定义了3个)并显式禁用保存,禁用RDB快照: #save 900 1 #save 300 10 #save 60 10000 sa

我想知道如何在redis中禁用presistence。这里提到了这样做的可能性:。我的意思和这里描述的完全一样。任何帮助都将不胜感激

要禁用Redis中的所有数据持久性,请在
Redis.conf
文件中执行以下操作:

  • 通过将
    appendonly
    配置指令设置为
    no
    (这是默认值)来禁用AOF。像这样:

    appendonly no
    
  • 通过注释所有
    save
    配置指令(默认情况下定义了3个)并显式禁用保存,禁用RDB快照:

    #save 900 1
    #save 300 10
    #save 60 10000
    save ""
    
  • 更改后,请确保重新启动Redis以应用这些更改

    或者,您可以使用该命令在运行时应用这些更改(只需确保您还执行了一个操作来持久化这些更改)


    注意:根据您的Redis版本的不同,还有其他一些调整可以阻止Redis访问磁盘执行与复制相关的任务。

    对于RDB快照,您可以使用

    $sed-e'/save/s/^i/etc/redis/redis.conf&&sudo服务redis服务器重启


    它将注释redis.conf中的保存行,并重新启动redis服务器。如果您不想玩
    redis.conf
    (开发/测试环境),可以使用

    redis服务器--save”“--appendonly no

    (使用redis server
    3.2.6
    5.0.5
    进行测试)

    由于默认情况下禁用了AOF(appendonly),在不重新启动redis服务的情况下禁用持久性只能做一件事,即禁用保存配置

    用于在运行时禁用它并验证“在下面运行”命令

    检查当前保存配置

    pawan@devops:~$ redis-cli config get save
    1) "save"
    2) "900 1 300 10 60 10000"
    
    pawan@devops:~$ redis-cli config set save ""
    OK
    
    pawan@devops:~$ redis-cli config get save
    1) "save"
    2) ""
    
    redis.conf文件中也会出现相同的设置

    pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'
    save 900 1
    save 300 10
    save 60 10000
    
    禁用保存配置

    pawan@devops:~$ redis-cli config get save
    1) "save"
    2) "900 1 300 10 60 10000"
    
    pawan@devops:~$ redis-cli config set save ""
    OK
    
    pawan@devops:~$ redis-cli config get save
    1) "save"
    2) ""
    
    使用新的save配置修改redis.conf文件,以便在redis服务重新启动时该配置保持永久性

    root@ip-172-16-3-114:~# redis-cli config rewrite
    OK
    
    确认新的保存配置

    pawan@devops:~$ redis-cli config get save
    1) "save"
    2) "900 1 300 10 60 10000"
    
    pawan@devops:~$ redis-cli config set save ""
    OK
    
    pawan@devops:~$ redis-cli config get save
    1) "save"
    2) ""
    
    现在,如果您将在redis.conf文件中扫描save配置,则不会有任何结果

    pawan@devops:~$ grep -w 'save' /etc/redis/redis.conf | grep -v '#'  
    pawan@devops:~$
    

    redis>config set auto aof rewrite percentage 0I已通过注释掉三条
    save
    指令,将我的redis配置为不将数据保存到磁盘。我可以看到,它不再定期快照数据。但是,每当我关闭服务器时,仍然会看到一个.rdb文件写入磁盘。是否仍可以创建它,可能是由于故障切换过程?要真正使其生效,您可以使用此处列出的命令通过cli执行此操作:或者您可以按照此回答中的说明更改redis.conf文件,然后在linux中使用:
    systemctl restart redis
    重新启动服务,位于
    /etc/redis/redis.conf
    中的
    redis.conf
    文件也不要忘记删除默认配置创建的任何现有
    *.rdb
    文件。例如,就我而言,在注释
    保存
    行之后,我还必须在重新启动之前删除
    /var/lib/redis/dump.rdb
    。您确定需要
    --appendonly no
    ?它不是默认关闭的吗?可能是真的。但是添加它当然没有什么坏处,只是为了安全起见,我们想要的是禁用所有类型的持久性;)嗯,在WSL(Ubuntu16)@JamesGentes的Windows10上我不工作,有什么错误吗。它适用于我的Fedora 29和Redis 5.0.3,现在已经测试过了。也许您需要在Windows中以不同的方式传递参数?Redis的版本是什么
    redis server--help
    或许也能为5.0.5版提供一些见解。我发现官方网站上没有关于这方面的说明,互联网上也没有关于这方面的大量信息(请看,这有更多的投票权,而且比这更好的文档记录),这让我感到惊讶,如果不是恼人的话。总的来说,考虑到Redis经常被用作非持久性数据库。