Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
hanoi2005
redis
提交
5762b7f0
R
redis
项目概览
hanoi2005
/
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,发现更多精彩内容 >>
提交
5762b7f0
编写于
11月 03, 2009
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
redis-cli now accepts a -r (repeat) switch. Still there is a memory leaks to fix
上级
cdd140aa
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
37 addition
and
27 deletion
+37
-27
redis-cli.c
redis-cli.c
+37
-27
未找到文件。
redis-cli.c
浏览文件 @
5762b7f0
...
...
@@ -49,6 +49,7 @@
static
struct
config
{
char
*
hostip
;
int
hostport
;
long
repeat
;
}
config
;
struct
redisCommand
{
...
...
@@ -255,7 +256,7 @@ static int cliReadReply(int fd) {
static
int
cliSendCommand
(
int
argc
,
char
**
argv
)
{
struct
redisCommand
*
rc
=
lookupCommand
(
argv
[
0
]);
int
fd
,
j
,
retval
=
0
;
sds
cmd
=
sdsempty
()
;
sds
cmd
;
if
(
!
rc
)
{
fprintf
(
stderr
,
"Unknown command '%s'
\n
"
,
argv
[
0
]);
...
...
@@ -269,35 +270,39 @@ static int cliSendCommand(int argc, char **argv) {
}
if
((
fd
=
cliConnect
())
==
-
1
)
return
1
;
/* Build the command to send */
if
(
rc
->
flags
&
REDIS_CMD_MULTIBULK
)
{
cmd
=
sdscatprintf
(
cmd
,
"*%d
\r\n
"
,
argc
);
for
(
j
=
0
;
j
<
argc
;
j
++
)
{
cmd
=
sdscatprintf
(
cmd
,
"$%d
\r\n
"
,
sdslen
(
argv
[
j
]));
cmd
=
sdscatlen
(
cmd
,
argv
[
j
],
sdslen
(
argv
[
j
]));
cmd
=
sdscatlen
(
cmd
,
"
\r\n
"
,
2
);
}
}
else
{
for
(
j
=
0
;
j
<
argc
;
j
++
)
{
if
(
j
!=
0
)
cmd
=
sdscat
(
cmd
,
" "
);
if
(
j
==
argc
-
1
&&
rc
->
flags
&
REDIS_CMD_BULK
)
{
cmd
=
sdscatprintf
(
cmd
,
"%d"
,
sdslen
(
argv
[
j
]));
}
else
{
while
(
config
.
repeat
--
)
{
/* Build the command to send */
cmd
=
sdsempty
();
if
(
rc
->
flags
&
REDIS_CMD_MULTIBULK
)
{
cmd
=
sdscatprintf
(
cmd
,
"*%d
\r\n
"
,
argc
);
for
(
j
=
0
;
j
<
argc
;
j
++
)
{
cmd
=
sdscatprintf
(
cmd
,
"$%d
\r\n
"
,
sdslen
(
argv
[
j
]));
cmd
=
sdscatlen
(
cmd
,
argv
[
j
],
sdslen
(
argv
[
j
]));
cmd
=
sdscatlen
(
cmd
,
"
\r\n
"
,
2
);
}
}
else
{
for
(
j
=
0
;
j
<
argc
;
j
++
)
{
if
(
j
!=
0
)
cmd
=
sdscat
(
cmd
,
" "
);
if
(
j
==
argc
-
1
&&
rc
->
flags
&
REDIS_CMD_BULK
)
{
cmd
=
sdscatprintf
(
cmd
,
"%d"
,
sdslen
(
argv
[
j
]));
}
else
{
cmd
=
sdscatlen
(
cmd
,
argv
[
j
],
sdslen
(
argv
[
j
]));
}
}
cmd
=
sdscat
(
cmd
,
"
\r\n
"
);
if
(
rc
->
flags
&
REDIS_CMD_BULK
)
{
cmd
=
sdscatlen
(
cmd
,
argv
[
argc
-
1
],
sdslen
(
argv
[
argc
-
1
]));
cmd
=
sdscatlen
(
cmd
,
"
\r\n
"
,
2
);
}
}
cmd
=
sdscat
(
cmd
,
"
\r\n
"
);
if
(
rc
->
flags
&
REDIS_CMD_BULK
)
{
cmd
=
sdscatlen
(
cmd
,
argv
[
argc
-
1
],
sdslen
(
argv
[
argc
-
1
]));
cmd
=
sdscatlen
(
cmd
,
"
\r\n
"
,
2
);
anetWrite
(
fd
,
cmd
,
sdslen
(
cmd
));
sdsfree
(
cmd
);
retval
=
cliReadReply
(
fd
);
if
(
retval
)
{
close
(
fd
);
return
retval
;
}
}
anetWrite
(
fd
,
cmd
,
sdslen
(
cmd
));
retval
=
cliReadReply
(
fd
);
if
(
retval
)
{
close
(
fd
);
return
retval
;
}
close
(
fd
);
return
0
;
}
...
...
@@ -319,6 +324,9 @@ static int parseOptions(int argc, char **argv) {
}
else
if
(
!
strcmp
(
argv
[
i
],
"-p"
)
&&
!
lastarg
)
{
config
.
hostport
=
atoi
(
argv
[
i
+
1
]);
i
++
;
}
else
if
(
!
strcmp
(
argv
[
i
],
"-r"
)
&&
!
lastarg
)
{
config
.
repeat
=
strtoll
(
argv
[
i
+
1
],
NULL
,
10
);
i
++
;
}
else
{
break
;
}
...
...
@@ -350,6 +358,7 @@ int main(int argc, char **argv) {
config
.
hostip
=
"127.0.0.1"
;
config
.
hostport
=
6379
;
config
.
repeat
=
1
;
firstarg
=
parseOptions
(
argc
,
argv
);
argc
-=
firstarg
;
...
...
@@ -361,11 +370,12 @@ int main(int argc, char **argv) {
argvcopy
[
j
]
=
sdsnew
(
argv
[
j
]);
if
(
argc
<
1
)
{
fprintf
(
stderr
,
"usage: redis-cli [-h host] [-p port] cmd arg1 arg2 arg3 ... argN
\n
"
);
fprintf
(
stderr
,
"usage: echo
\"
argN
\"
| redis-cli [-h host] [-p port] cmd arg1 arg2 ... arg(N-1)
\n
"
);
fprintf
(
stderr
,
"usage: redis-cli [-h host] [-p port]
[-r repeat_times]
cmd arg1 arg2 arg3 ... argN
\n
"
);
fprintf
(
stderr
,
"usage: echo
\"
argN
\"
| redis-cli [-h host] [-p port]
-r [repeat_times]
cmd arg1 arg2 ... arg(N-1)
\n
"
);
fprintf
(
stderr
,
"
\n
If a pipe from standard input is detected this data is used as last argument.
\n\n
"
);
fprintf
(
stderr
,
"example: cat /etc/passwd | redis-cli set my_passwd
\n
"
);
fprintf
(
stderr
,
"example: redis-cli get my_passwd
\n
"
);
fprintf
(
stderr
,
"example: redis-cli -r 100 lpush mylist x
\n
"
);
exit
(
1
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录