Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
hanoi2005
redis
提交
51e01d9b
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,发现更多精彩内容 >>
提交
51e01d9b
编写于
11月 12, 2009
作者:
A
antirez
浏览文件
操作
浏览文件
下载
差异文件
Merge
git://github.com/ianxm/redis
上级
96d8b4ee
62e920df
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
42 addition
and
7 deletion
+42
-7
redis-cli.c
redis-cli.c
+42
-7
未找到文件。
redis-cli.c
浏览文件 @
51e01d9b
...
@@ -50,6 +50,7 @@ static struct config {
...
@@ -50,6 +50,7 @@ static struct config {
char
*
hostip
;
char
*
hostip
;
int
hostport
;
int
hostport
;
long
repeat
;
long
repeat
;
int
dbnum
;
}
config
;
}
config
;
struct
redisCommand
{
struct
redisCommand
{
...
@@ -175,11 +176,12 @@ static sds cliReadLine(int fd) {
...
@@ -175,11 +176,12 @@ static sds cliReadLine(int fd) {
return
sdstrim
(
line
,
"
\r\n
"
);
return
sdstrim
(
line
,
"
\r\n
"
);
}
}
static
int
cliReadSingleLineReply
(
int
fd
)
{
static
int
cliReadSingleLineReply
(
int
fd
,
int
quiet
)
{
sds
reply
=
cliReadLine
(
fd
);
sds
reply
=
cliReadLine
(
fd
);
if
(
reply
==
NULL
)
return
1
;
if
(
reply
==
NULL
)
return
1
;
printf
(
"%s
\n
"
,
reply
);
if
(
!
quiet
)
printf
(
"%s
\n
"
,
reply
);
return
0
;
return
0
;
}
}
...
@@ -237,13 +239,13 @@ static int cliReadReply(int fd) {
...
@@ -237,13 +239,13 @@ static int cliReadReply(int fd) {
switch
(
type
)
{
switch
(
type
)
{
case
'-'
:
case
'-'
:
printf
(
"(error) "
);
printf
(
"(error) "
);
cliReadSingleLineReply
(
fd
);
cliReadSingleLineReply
(
fd
,
0
);
return
1
;
return
1
;
case
'+'
:
case
'+'
:
return
cliReadSingleLineReply
(
fd
);
return
cliReadSingleLineReply
(
fd
,
0
);
case
':'
:
case
':'
:
printf
(
"(integer) "
);
printf
(
"(integer) "
);
return
cliReadSingleLineReply
(
fd
);
return
cliReadSingleLineReply
(
fd
,
0
);
case
'$'
:
case
'$'
:
return
cliReadBulkReply
(
fd
);
return
cliReadBulkReply
(
fd
);
case
'*'
:
case
'*'
:
...
@@ -254,6 +256,28 @@ static int cliReadReply(int fd) {
...
@@ -254,6 +256,28 @@ static int cliReadReply(int fd) {
}
}
}
}
static
int
selectDb
(
int
fd
)
{
int
retval
;
sds
cmd
;
char
type
;
if
(
config
.
dbnum
==
0
)
return
0
;
cmd
=
sdsempty
();
cmd
=
sdscatprintf
(
cmd
,
"SELECT %d
\r\n
"
,
config
.
dbnum
);
anetWrite
(
fd
,
cmd
,
sdslen
(
cmd
));
anetRead
(
fd
,
&
type
,
1
);
if
(
type
<=
0
||
type
!=
'+'
)
return
1
;
retval
=
cliReadSingleLineReply
(
fd
,
1
);
if
(
retval
)
{
close
(
fd
);
return
retval
;
}
return
0
;
}
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
;
...
@@ -271,6 +295,13 @@ static int cliSendCommand(int argc, char **argv) {
...
@@ -271,6 +295,13 @@ static int cliSendCommand(int argc, char **argv) {
}
}
if
((
fd
=
cliConnect
())
==
-
1
)
return
1
;
if
((
fd
=
cliConnect
())
==
-
1
)
return
1
;
/* Select db number */
retval
=
selectDb
(
fd
);
if
(
retval
)
{
fprintf
(
stderr
,
"Error setting DB num
\n
"
);
return
1
;
}
while
(
config
.
repeat
--
)
{
while
(
config
.
repeat
--
)
{
/* Build the command to send */
/* Build the command to send */
cmd
=
sdsempty
();
cmd
=
sdsempty
();
...
@@ -328,6 +359,9 @@ static int parseOptions(int argc, char **argv) {
...
@@ -328,6 +359,9 @@ static int parseOptions(int argc, char **argv) {
}
else
if
(
!
strcmp
(
argv
[
i
],
"-r"
)
&&
!
lastarg
)
{
}
else
if
(
!
strcmp
(
argv
[
i
],
"-r"
)
&&
!
lastarg
)
{
config
.
repeat
=
strtoll
(
argv
[
i
+
1
],
NULL
,
10
);
config
.
repeat
=
strtoll
(
argv
[
i
+
1
],
NULL
,
10
);
i
++
;
i
++
;
}
else
if
(
!
strcmp
(
argv
[
i
],
"-n"
)
&&
!
lastarg
)
{
config
.
dbnum
=
atoi
(
argv
[
i
+
1
]);
i
++
;
}
else
{
}
else
{
break
;
break
;
}
}
...
@@ -360,6 +394,7 @@ int main(int argc, char **argv) {
...
@@ -360,6 +394,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
;
config
.
repeat
=
1
;
config
.
dbnum
=
0
;
firstarg
=
parseOptions
(
argc
,
argv
);
firstarg
=
parseOptions
(
argc
,
argv
);
argc
-=
firstarg
;
argc
-=
firstarg
;
...
@@ -371,8 +406,8 @@ int main(int argc, char **argv) {
...
@@ -371,8 +406,8 @@ 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] [-r repeat_times] cmd arg1 arg2 arg3 ... argN
\n
"
);
fprintf
(
stderr
,
"usage: redis-cli [-h host] [-p port] [-r repeat_times]
[-n db_num]
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
,
"usage: echo
\"
argN
\"
| redis-cli [-h host] [-p port]
[-r repeat_times] [-n db_num
] 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
"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录