forked from huangzworks/redis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config_rewrite.html
213 lines (185 loc) · 10.2 KB
/
config_rewrite.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CONFIG REWRITE — Redis 命令参考</title>
<link rel="stylesheet" href="../_static/pyramid.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '2.8',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="Redis 命令参考" href="../index.html" />
<link rel="up" title="Server(服务器)" href="index.html" />
<link rel="next" title="CONFIG SET" href="config_set.html" />
<link rel="prev" title="CONFIG RESETSTAT" href="config_resetstat.html" />
<!--[if lte IE 6]>
<link rel="stylesheet" href="../_static/ie6.css" type="text/css" media="screen" charset="utf-8" />
<![endif]-->
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="config_set.html" title="CONFIG SET"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="config_resetstat.html" title="CONFIG RESETSTAT"
accesskey="P">previous</a> |</li>
<li><a href="../index.html">Redis 命令参考</a> »</li>
<li><a href="index.html" accesskey="U">Server(服务器)</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="config-rewrite">
<span id="id1"></span><h1>CONFIG REWRITE<a class="headerlink" href="#config-rewrite" title="Permalink to this headline">¶</a></h1>
<p><strong>CONFIG REWRITE</strong></p>
<p><a class="reference internal" href="#config-rewrite"><span>CONFIG REWRITE</span></a> 命令对启动 Redis 服务器时所指定的 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件进行改写:
因为 <a class="reference internal" href="config_set.html#config-set"><span>CONFIG SET</span></a> 命令可以对服务器的当前配置进行修改,
而修改后的配置可能和 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件中所描述的配置不一样,
<a class="reference internal" href="#config-rewrite"><span>CONFIG REWRITE</span></a> 的作用就是通过尽可能少的修改,
将服务器当前所使用的配置记录到 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件中。</p>
<p>重写会以非常保守的方式进行:</p>
<ul class="simple">
<li>原有 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件的整体结构和注释会被尽可能地保留。</li>
<li>如果一个选项已经存在于原有 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件中 ,
那么对该选项的重写会在选项原本所在的位置(行号)上进行。</li>
<li>如果一个选项不存在于原有 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件中,
并且该选项被设置为默认值,
那么重写程序不会将这个选项添加到重写后的 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件中。</li>
<li>如果一个选项不存在于原有 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件中,
并且该选项被设置为非默认值,
那么这个选项将被添加到重写后的 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件的末尾。</li>
<li>未使用的行会被留白。
比如说,
如果你在原有 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件上设置了数个关于 <code class="docutils literal"><span class="pre">save</span></code> 选项的参数,
但现在你将这些 <code class="docutils literal"><span class="pre">save</span></code> 参数的一个或全部都关闭了,
那么这些不再使用的参数原本所在的行就会变成空白的。</li>
</ul>
<p>即使启动服务器时所指定的 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件已经不再存在,
<a class="reference internal" href="#config-rewrite"><span>CONFIG REWRITE</span></a> 命令也可以重新构建并生成出一个新的 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件。</p>
<p>另一方面,
如果启动服务器时没有载入 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件,
那么执行 <a class="reference internal" href="#config-rewrite"><span>CONFIG REWRITE</span></a> 命令将引发一个错误。</p>
<div class="section" id="id2">
<h2>原子性重写<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h2>
<p>对 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件的重写是原子性的,
并且是一致的:
如果重写出错或重写期间服务器崩溃,
那么重写失败,
原有 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件不会被修改。
如果重写成功,
那么 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件为重写后的新文件。</p>
</div>
<div class="section" id="id3">
<h2>可用版本<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h2>
<p>>= 2.8.0</p>
</div>
<div class="section" id="id4">
<h2>返回值<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h2>
<p>一个状态值:如果配置重写成功则返回 <code class="docutils literal"><span class="pre">OK</span></code> ,失败则返回一个错误。</p>
</div>
<div class="section" id="id5">
<h2>测试<a class="headerlink" href="#id5" title="Permalink to this headline">¶</a></h2>
<p>以下是执行 <a class="reference internal" href="#config-rewrite"><span>CONFIG REWRITE</span></a> 前,
被载入到 Redis 服务器的 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件中关于 <code class="docutils literal"><span class="pre">appendonly</span></code> 选项的设置:</p>
<div class="highlight-python"><div class="highlight"><pre># ... 其他选项
appendonly no
# ... 其他选项
</pre></div>
</div>
<p>在执行以下命令之后:</p>
<div class="highlight-python"><div class="highlight"><pre>127.0.0.1:6379> CONFIG GET appendonly # appendonly 处于关闭状态
1) "appendonly"
2) "no"
127.0.0.1:6379> CONFIG SET appendonly yes # 打开 appendonly
OK
127.0.0.1:6379> CONFIG GET appendonly
1) "appendonly"
2) "yes"
127.0.0.1:6379> CONFIG REWRITE # 将 appendonly 的修改写入到 redis.conf 中
OK
</pre></div>
</div>
<p>重写后的 <code class="docutils literal"><span class="pre">redis.conf</span></code> 文件中的 <code class="docutils literal"><span class="pre">appendonly</span></code> 选项将被改写:</p>
<div class="highlight-python"><div class="highlight"><pre># ... 其他选项
appendonly yes
# ... 其他选项
</pre></div>
</div>
</div>
</div>
<div class="section" id="discuss">
<h2>
讨论
<a class="headerlink" href="#discuss" title="永久链接至标题">¶</a>
</h2>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'redis-command-cn'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
<div id="sponser">
<h2>赞助商</h2>
<p>我们正在寻找赞助商,有意对这个网站进行赞助的朋友请联系 [email protected] 。</p>
</div>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="config_set.html" title="CONFIG SET"
>next</a> |</li>
<li class="right" >
<a href="config_resetstat.html" title="CONFIG RESETSTAT"
>previous</a> |</li>
<li><a href="../index.html">Redis 命令参考</a> »</li>
<li><a href="index.html" >Server(服务器)</a> »</li>
</ul>
</div>
<div class="footer">
© Copyright 2015, Redis.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.3.3.
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-53959484-7', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>