Redis Server – CONFIG REWRITE命令

2020年8月9日19:21:44 评论 56

CONFIG REWRITE

CONFIG REWRITE命令重写服务器启动时指定的redis.conf文件,应用所需的最小更改来反应服务器当前使用的配置,由于使用了CONFIG SET,因此与原始配置相比可能有所不同。

重写以非常保守的方式执行:

  • 注释和原始redis.conf文件的整体结构会尽可能的保留下来。
  • 如果一个选项在旧的redis.conf文件中已经存在,那么它会在相同的位置(行号)被重写。
  • 如果某个选项在配置文件中尚不存在,但被设置为了该选项的默认值,那么他将不会被重写进程写入配置文件。
  • 如果某个选项在配置文件中尚不存在,但被设置了一个非默认值,那么它会被追加到文件的末尾。
  • 未使用的行将会留空。例如,如果你之前在配置文件中有多个save配置项,但由于你禁用了RDB持久化,当前的save配置变少了或者变为空,那么所有的那些行将会是空行。

如果原始文件由于某些原因不再存在,CONFIG REWRITE也能够从头开始重写配置文件。但是,如果服务器启动的时候没有指定任何配置文件,则CONFIG REWRITE将只会返回一个错误。

原子重写过程

为了保证redis.conf文件始终是一致的,也即,在异常或者崩溃的时候,你的配置文件要么是旧的文件,或者是重写完的新文件。重写是通过一次具有足够内容的write(2)调用来执行的,至少和旧的文件一样大。有时会以注释的形式添加额外的padding,以确保生成的文件足够大,稍后文件会被截断以删除末尾的padding。

返回值

simple-string-reply:当配置被正确重写时返回OK,否则返回错误。


相关参考链接

Server相关命令:

命令组 命令
Server(服务器) BGREWRITEAOF;   BGSAVE;   CLIENT GETNAME;    CLIENT ID;
CLIENT KILL;   CLIENT LIST;    CLIENT PAUSE;     CLIENT REPLY;
CLIENT SETNAME;    CLIENT UNBLOCK;    COMMAND;
COMMAND COUNT;    COMMAND GETKEYS;    COMMAND INFO
CONFIG GET;   CONFIG RESETSTAT;   CONFIG REWRITE;
CONFIG SET;   DBSIZE;   DEBUG OBJECT;   DEBUG SEGFAULT;
FLUSHALL;   FLUSHDB;   INFO;   LASTSAVE;
MEMORY DOCTOR;    MEMORY HELP;
MEMORY MALLOC-STATS;    MEMORY PURGE;
MEMORY STATS;    MEMORY USAGE;    MONITOR;
REPLICAOF;    ROLE;    SAVE;   SHUTDOWN;
SLAVEOF;   SLOWLOG;   SYNC;   TIME;

全部命令组:Keys(键)Strings(字符串)Hashes(哈希表)Lists(列表)Sets(集合)Sorted Sets(有序集合)Pub/Sub(发布/订阅)Scripting(脚本)Server(服务器)Transactions(事物)Geo(地理位置)Cluster(集群)Connection(连接)Streams(流)HyperLogLog

回到总目录:Redis命令参考手册(总目录)

素课网
  • 本文由 发表于 2020年8月9日19:21:44
  • 转载请注明:https://www.suketech.com/9024.html
Redis Cluster – READONLY命令 Redis命令参考

Redis Cluster – READONLY命令

READONLY 起始版本:3.0.0 时间复杂度:O(1) 开启与 Redis Cluster 从节点连接的读请求 通常,从节点将重定向客户端到认证过的主节点,以获取在指定命令中所涉及的哈希槽,然而...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: