Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
别团等shy哥发育
redis
提交
0537e7bf
R
redis
项目概览
别团等shy哥发育
/
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,发现更多精彩内容 >>
提交
0537e7bf
编写于
9月 02, 2010
作者:
P
Pieter Noordhuis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use specialized function to add multi bulk reply length
上级
57b07380
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
14 addition
and
10 deletion
+14
-10
src/multi.c
src/multi.c
+1
-1
src/networking.c
src/networking.c
+4
-0
src/redis.h
src/redis.h
+1
-0
src/sort.c
src/sort.c
+1
-1
src/t_hash.c
src/t_hash.c
+1
-1
src/t_list.c
src/t_list.c
+3
-3
src/t_set.c
src/t_set.c
+1
-1
src/t_string.c
src/t_string.c
+1
-1
src/t_zset.c
src/t_zset.c
+1
-2
未找到文件。
src/multi.c
浏览文件 @
0537e7bf
...
...
@@ -107,7 +107,7 @@ void execCommand(redisClient *c) {
unwatchAllKeys
(
c
);
/* Unwatch ASAP otherwise we'll waste CPU cycles */
orig_argv
=
c
->
argv
;
orig_argc
=
c
->
argc
;
addReply
Sds
(
c
,
sdscatprintf
(
sdsempty
(),
"*%d
\r\n
"
,
c
->
mstate
.
count
)
);
addReply
MultiBulkLen
(
c
,
c
->
mstate
.
count
);
for
(
j
=
0
;
j
<
c
->
mstate
.
count
;
j
++
)
{
c
->
argc
=
c
->
mstate
.
commands
[
j
].
argc
;
c
->
argv
=
c
->
mstate
.
commands
[
j
].
argv
;
...
...
src/networking.c
浏览文件 @
0537e7bf
...
...
@@ -200,6 +200,10 @@ void addReplyUlong(redisClient *c, unsigned long ul) {
_addReplyLongLong
(
c
,(
long
long
)
ul
,
':'
);
}
void
addReplyMultiBulkLen
(
redisClient
*
c
,
long
length
)
{
_addReplyLongLong
(
c
,
length
,
'*'
);
}
void
addReplyBulkLen
(
redisClient
*
c
,
robj
*
obj
)
{
size_t
len
;
...
...
src/redis.h
浏览文件 @
0537e7bf
...
...
@@ -617,6 +617,7 @@ void addReplySds(redisClient *c, sds s);
void
addReplyDouble
(
redisClient
*
c
,
double
d
);
void
addReplyLongLong
(
redisClient
*
c
,
long
long
ll
);
void
addReplyUlong
(
redisClient
*
c
,
unsigned
long
ul
);
void
addReplyMultiBulkLen
(
redisClient
*
c
,
long
length
);
void
*
dupClientReplyValue
(
void
*
o
);
/* List data type */
...
...
src/sort.c
浏览文件 @
0537e7bf
...
...
@@ -307,7 +307,7 @@ void sortCommand(redisClient *c) {
outputlen
=
getop
?
getop
*
(
end
-
start
+
1
)
:
end
-
start
+
1
;
if
(
storekey
==
NULL
)
{
/* STORE option not specified, sent the sorting result to client */
addReply
Sds
(
c
,
sdscatprintf
(
sdsempty
(),
"*%d
\r\n
"
,
outputlen
)
);
addReply
MultiBulkLen
(
c
,
outputlen
);
for
(
j
=
start
;
j
<=
end
;
j
++
)
{
listNode
*
ln
;
listIter
li
;
...
...
src/t_hash.c
浏览文件 @
0537e7bf
...
...
@@ -315,7 +315,7 @@ void hmgetCommand(redisClient *c) {
/* Note the check for o != NULL happens inside the loop. This is
* done because objects that cannot be found are considered to be
* an empty hash. The reply should then be a series of NULLs. */
addReply
Sds
(
c
,
sdscatprintf
(
sdsempty
(),
"*%d
\r\n
"
,
c
->
argc
-
2
)
);
addReply
MultiBulkLen
(
c
,
c
->
argc
-
2
);
for
(
i
=
2
;
i
<
c
->
argc
;
i
++
)
{
if
(
o
!=
NULL
&&
(
value
=
hashTypeGet
(
o
,
c
->
argv
[
i
]))
!=
NULL
)
{
addReplyBulk
(
c
,
value
);
...
...
src/t_list.c
浏览文件 @
0537e7bf
...
...
@@ -494,7 +494,7 @@ void lrangeCommand(redisClient *c) {
rangelen
=
(
end
-
start
)
+
1
;
/* Return the result in form of a multi-bulk reply */
addReply
Sds
(
c
,
sdscatprintf
(
sdsempty
(),
"*%d
\r\n
"
,
rangelen
)
);
addReply
MultiBulkLen
(
c
,
rangelen
);
listTypeIterator
*
li
=
listTypeInitIterator
(
o
,
start
,
REDIS_TAIL
);
for
(
j
=
0
;
j
<
rangelen
;
j
++
)
{
redisAssert
(
listTypeNext
(
li
,
&
entry
));
...
...
@@ -772,7 +772,7 @@ int handleClientsWaitingListPush(redisClient *c, robj *key, robj *ele) {
redisAssert
(
ln
!=
NULL
);
receiver
=
ln
->
value
;
addReply
Sds
(
receiver
,
sdsnew
(
"*2
\r\n
"
)
);
addReply
MultiBulkLen
(
receiver
,
2
);
addReplyBulk
(
receiver
,
key
);
addReplyBulk
(
receiver
,
ele
);
unblockClientWaitingData
(
receiver
);
...
...
@@ -811,7 +811,7 @@ void blockingPopGenericCommand(redisClient *c, int where) {
* "real" command will add the last element (the value)
* for us. If this souds like an hack to you it's just
* because it is... */
addReply
Sds
(
c
,
sdsnew
(
"*2
\r\n
"
)
);
addReply
MultiBulkLen
(
c
,
2
);
addReplyBulk
(
c
,
argv
[
1
]);
popGenericCommand
(
c
,
where
);
...
...
src/t_set.c
浏览文件 @
0537e7bf
...
...
@@ -469,7 +469,7 @@ void sunionDiffGenericCommand(redisClient *c, robj **setkeys, int setnum, robj *
/* Output the content of the resulting set, if not in STORE mode */
if
(
!
dstkey
)
{
addReply
Sds
(
c
,
sdscatprintf
(
sdsempty
(),
"*%d
\r\n
"
,
cardinality
)
);
addReply
MultiBulkLen
(
c
,
cardinality
);
si
=
setTypeInitIterator
(
dstset
);
while
((
ele
=
setTypeNext
(
si
))
!=
NULL
)
{
addReplyBulk
(
c
,
ele
);
...
...
src/t_string.c
浏览文件 @
0537e7bf
...
...
@@ -79,7 +79,7 @@ void getsetCommand(redisClient *c) {
void
mgetCommand
(
redisClient
*
c
)
{
int
j
;
addReply
Sds
(
c
,
sdscatprintf
(
sdsempty
(),
"*%d
\r\n
"
,
c
->
argc
-
1
)
);
addReply
MultiBulkLen
(
c
,
c
->
argc
-
1
);
for
(
j
=
1
;
j
<
c
->
argc
;
j
++
)
{
robj
*
o
=
lookupKeyRead
(
c
->
db
,
c
->
argv
[
j
]);
if
(
o
==
NULL
)
{
...
...
src/t_zset.c
浏览文件 @
0537e7bf
...
...
@@ -782,8 +782,7 @@ void zrangeGenericCommand(redisClient *c, int reverse) {
}
/* Return the result in form of a multi-bulk reply */
addReplySds
(
c
,
sdscatprintf
(
sdsempty
(),
"*%d
\r\n
"
,
withscores
?
(
rangelen
*
2
)
:
rangelen
));
addReplyMultiBulkLen
(
c
,
withscores
?
(
rangelen
*
2
)
:
rangelen
);
for
(
j
=
0
;
j
<
rangelen
;
j
++
)
{
ele
=
ln
->
obj
;
addReplyBulk
(
c
,
ele
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录