Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dk131072
redis
提交
506764b3
R
redis
项目概览
dk131072
/
redis
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
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,发现更多精彩内容 >>
提交
506764b3
编写于
7月 03, 2019
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Client side caching: hook inside call() for tracking.
上级
db16a861
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
12 addition
and
0 deletion
+12
-0
src/server.c
src/server.c
+11
-0
src/server.h
src/server.h
+1
-0
未找到文件。
src/server.c
浏览文件 @
506764b3
...
@@ -3194,6 +3194,7 @@ void call(client *c, int flags) {
...
@@ -3194,6 +3194,7 @@ void call(client *c, int flags) {
latencyAddSampleIfNeeded
(
latency_event
,
duration
/
1000
);
latencyAddSampleIfNeeded
(
latency_event
,
duration
/
1000
);
slowlogPushEntryIfNeeded
(
c
,
c
->
argv
,
c
->
argc
,
duration
);
slowlogPushEntryIfNeeded
(
c
,
c
->
argv
,
c
->
argc
,
duration
);
}
}
if
(
flags
&
CMD_CALL_STATS
)
{
if
(
flags
&
CMD_CALL_STATS
)
{
/* use the real command that was executed (cmd and lastamc) may be
/* use the real command that was executed (cmd and lastamc) may be
* different, in case of MULTI-EXEC or re-written commands such as
* different, in case of MULTI-EXEC or re-written commands such as
...
@@ -3261,6 +3262,16 @@ void call(client *c, int flags) {
...
@@ -3261,6 +3262,16 @@ void call(client *c, int flags) {
redisOpArrayFree
(
&
server
.
also_propagate
);
redisOpArrayFree
(
&
server
.
also_propagate
);
}
}
server
.
also_propagate
=
prev_also_propagate
;
server
.
also_propagate
=
prev_also_propagate
;
/* If the client has keys tracking enabled for client side caching,
* make sure to remember the keys it fetched via this command. */
if
(
c
->
cmd
->
flags
&
CMD_READONLY
)
{
client
*
caller
=
(
c
->
flags
&
CLIENT_LUA
&&
server
.
lua_caller
)
?
server
.
lua_caller
:
c
;
if
(
caller
->
flags
&
CLIENT_TRACKING
)
trackingRememberKeys
(
caller
);
}
server
.
stat_numcommands
++
;
server
.
stat_numcommands
++
;
}
}
...
...
src/server.h
浏览文件 @
506764b3
...
@@ -1617,6 +1617,7 @@ void addReplyStatusFormat(client *c, const char *fmt, ...);
...
@@ -1617,6 +1617,7 @@ void addReplyStatusFormat(client *c, const char *fmt, ...);
/* Client side caching (tracking mode) */
/* Client side caching (tracking mode) */
void
enableTracking
(
client
*
c
,
uint64_t
redirect_to
);
void
enableTracking
(
client
*
c
,
uint64_t
redirect_to
);
void
disableTracking
(
client
*
c
);
void
disableTracking
(
client
*
c
);
void
trackingRememberKeys
(
client
*
c
);
/* List data type */
/* List data type */
void
listTypeTryConversion
(
robj
*
subject
,
robj
*
value
);
void
listTypeTryConversion
(
robj
*
subject
,
robj
*
value
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录