Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
5762b7f0
Commit
5762b7f0
authored
Nov 03, 2009
by
antirez
Browse files
redis-cli now accepts a -r (repeat) switch. Still there is a memory leaks to fix
parent
cdd140aa
Changes
1
Show whitespace changes
Inline
Side-by-side
redis-cli.c
View file @
5762b7f0
...
@@ -49,6 +49,7 @@
...
@@ -49,6 +49,7 @@
static
struct
config
{
static
struct
config
{
char
*
hostip
;
char
*
hostip
;
int
hostport
;
int
hostport
;
long
repeat
;
}
config
;
}
config
;
struct
redisCommand
{
struct
redisCommand
{
...
@@ -255,7 +256,7 @@ static int cliReadReply(int fd) {
...
@@ -255,7 +256,7 @@ static int cliReadReply(int fd) {
static
int
cliSendCommand
(
int
argc
,
char
**
argv
)
{
static
int
cliSendCommand
(
int
argc
,
char
**
argv
)
{
struct
redisCommand
*
rc
=
lookupCommand
(
argv
[
0
]);
struct
redisCommand
*
rc
=
lookupCommand
(
argv
[
0
]);
int
fd
,
j
,
retval
=
0
;
int
fd
,
j
,
retval
=
0
;
sds
cmd
=
sdsempty
()
;
sds
cmd
;
if
(
!
rc
)
{
if
(
!
rc
)
{
fprintf
(
stderr
,
"Unknown command '%s'
\n
"
,
argv
[
0
]);
fprintf
(
stderr
,
"Unknown command '%s'
\n
"
,
argv
[
0
]);
...
@@ -269,7 +270,9 @@ static int cliSendCommand(int argc, char **argv) {
...
@@ -269,7 +270,9 @@ static int cliSendCommand(int argc, char **argv) {
}
}
if
((
fd
=
cliConnect
())
==
-
1
)
return
1
;
if
((
fd
=
cliConnect
())
==
-
1
)
return
1
;
while
(
config
.
repeat
--
)
{
/* Build the command to send */
/* Build the command to send */
cmd
=
sdsempty
();
if
(
rc
->
flags
&
REDIS_CMD_MULTIBULK
)
{
if
(
rc
->
flags
&
REDIS_CMD_MULTIBULK
)
{
cmd
=
sdscatprintf
(
cmd
,
"*%d
\r\n
"
,
argc
);
cmd
=
sdscatprintf
(
cmd
,
"*%d
\r\n
"
,
argc
);
for
(
j
=
0
;
j
<
argc
;
j
++
)
{
for
(
j
=
0
;
j
<
argc
;
j
++
)
{
...
@@ -293,11 +296,13 @@ static int cliSendCommand(int argc, char **argv) {
...
@@ -293,11 +296,13 @@ static int cliSendCommand(int argc, char **argv) {
}
}
}
}
anetWrite
(
fd
,
cmd
,
sdslen
(
cmd
));
anetWrite
(
fd
,
cmd
,
sdslen
(
cmd
));
sdsfree
(
cmd
);
retval
=
cliReadReply
(
fd
);
retval
=
cliReadReply
(
fd
);
if
(
retval
)
{
if
(
retval
)
{
close
(
fd
);
close
(
fd
);
return
retval
;
return
retval
;
}
}
}
close
(
fd
);
close
(
fd
);
return
0
;
return
0
;
}
}
...
@@ -319,6 +324,9 @@ static int parseOptions(int argc, char **argv) {
...
@@ -319,6 +324,9 @@ static int parseOptions(int argc, char **argv) {
}
else
if
(
!
strcmp
(
argv
[
i
],
"-p"
)
&&
!
lastarg
)
{
}
else
if
(
!
strcmp
(
argv
[
i
],
"-p"
)
&&
!
lastarg
)
{
config
.
hostport
=
atoi
(
argv
[
i
+
1
]);
config
.
hostport
=
atoi
(
argv
[
i
+
1
]);
i
++
;
i
++
;
}
else
if
(
!
strcmp
(
argv
[
i
],
"-r"
)
&&
!
lastarg
)
{
config
.
repeat
=
strtoll
(
argv
[
i
+
1
],
NULL
,
10
);
i
++
;
}
else
{
}
else
{
break
;
break
;
}
}
...
@@ -350,6 +358,7 @@ int main(int argc, char **argv) {
...
@@ -350,6 +358,7 @@ int main(int argc, char **argv) {
config
.
hostip
=
"127.0.0.1"
;
config
.
hostip
=
"127.0.0.1"
;
config
.
hostport
=
6379
;
config
.
hostport
=
6379
;
config
.
repeat
=
1
;
firstarg
=
parseOptions
(
argc
,
argv
);
firstarg
=
parseOptions
(
argc
,
argv
);
argc
-=
firstarg
;
argc
-=
firstarg
;
...
@@ -361,11 +370,12 @@ int main(int argc, char **argv) {
...
@@ -361,11 +370,12 @@ int main(int argc, char **argv) {
argvcopy
[
j
]
=
sdsnew
(
argv
[
j
]);
argvcopy
[
j
]
=
sdsnew
(
argv
[
j
]);
if
(
argc
<
1
)
{
if
(
argc
<
1
)
{
fprintf
(
stderr
,
"usage: redis-cli [-h host] [-p port] cmd arg1 arg2 arg3 ... argN
\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] cmd arg1 arg2 ... arg(N-1)
\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
,
"
\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: cat /etc/passwd | redis-cli set my_passwd
\n
"
);
fprintf
(
stderr
,
"example: redis-cli get 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
);
exit
(
1
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment