Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Turbo码先生
redis
提交
54f5ecfd
R
redis
项目概览
Turbo码先生
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
54f5ecfd
编写于
11月 10, 2015
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
call() deserves a good top-comment.
上级
c950facf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
38 addition
and
2 deletion
+38
-2
src/server.c
src/server.c
+38
-2
未找到文件。
src/server.c
浏览文件 @
54f5ecfd
...
...
@@ -2164,7 +2164,43 @@ void preventCommandReplication(client *c) {
c
->
flags
|=
CLIENT_PREVENT_REPL_PROP
;
}
/* Call() is the core of Redis execution of a command */
/* Call() is the core of Redis execution of a command.
*
* The following flags can be passed:
* CMD_CALL_NONE No flags.
* CMD_CALL_SLOWLOG Check command speed and log in the slow log if needed.
* CMD_CALL_STATS Populate command stats.
* CMD_CALL_PROPAGATE_AOF Append command to AOF if it modified the dataset
* or if the client flags are forcing propagation.
* CMD_CALL_PROPAGATE_REPL Send command to salves if it modified the dataset
* or if the client flags are forcing propagation.
* CMD_CALL_PROPAGATE Alias for PROPAGATE_AOF|PROPAGATE_REPL.
* CMD_CALL_FULL Alias for SLOWLOG|STATS|PROPAGATE.
*
* The exact propagation behavior depends on the client flags.
* Specifically:
*
* 1. If the client flags CLIENT_FORCE_AOF or CLIENT_FORCE_REPL are set
* and assuming the corresponding CMD_CALL_PROPAGATE_AOF/REPL is set
* in the call flags, then the command is propagated even if the
* dataset was not affected by the command.
* 2. If the client flags CLIENT_PREVENT_REPL_PROP or CLIENT_PREVENT_AOF_PROP
* are set, the propagation into AOF or to slaves is not performed even
* if the command modified the dataset.
*
* Note that regardless of the client flags, if CMD_CALL_PROPAGATE_AOF
* or CMD_CALL_PROPAGATE_REPL are not set, then respectively AOF or
* slaves propagation will never occur.
*
* Client flags are modified by the implementation of a given command
* using the following API:
*
* forceCommandPropagation(client *c, int flags);
* preventCommandPropagation(client *c);
* preventCommandAOF(client *c);
* preventCommandReplication(client *c);
*
*/
void
call
(
client
*
c
,
int
flags
)
{
long
long
dirty
,
start
,
duration
;
int
client_old_flags
=
c
->
flags
;
...
...
@@ -2229,7 +2265,7 @@ void call(client *c, int flags) {
* set for replication / AOF propagation. */
if
(
dirty
)
propagate_flags
|=
(
PROPAGATE_AOF
|
PROPAGATE_REPL
);
/* If the c
ommand
forced AOF / replication of the command, set
/* If the c
lient
forced AOF / replication of the command, set
* the flags regardless of the command effects on the data set. */
if
(
c
->
flags
&
CLIENT_FORCE_REPL
)
propagate_flags
|=
PROPAGATE_REPL
;
if
(
c
->
flags
&
CLIENT_FORCE_AOF
)
propagate_flags
|=
PROPAGATE_AOF
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录