redis-cli客户端的命令集

本文介绍了Redis命令行客户端redis-cli的各种使用选项,包括-r指定命令执行次数、-i设置执行间隔、-h用于指定主机地址、--help显示帮助、-x从标准输入或文件读取命令、-p设置端口、-s使用套接字连接、-a设置密码、--pipe批量发送命令以及-v和--csv等不同输出格式。了解这些选项可以帮助更高效地与Redis服务器交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令集介绍

-r  命令执行次数

redis-cli -r 3 ping

-i  如果设置了-r命令执行次数 -i可以设置执行间隔

redis-cli -r 5 -i 1 ping (每隔一秒执行一次Ping命令,一共执行5次)

-h 有两种意义,如果后面没跟任何参数表示帮助文档,后面有参数表示是设置一个域名

redis-cli -h

redis-cli -h 127.0.0.1

--help  命令行参数帮助提示

-x  从标准输入读取剩下的参数

echo "world" | redis-cli -x set hello 类似 set hello world

也可以下一个文件 command.txt  文件内写内容 set hello world

redis-cli -x  < command.txt

-p 设置端口

redis-cli -h 127.0.0.1 -p 6379

-s  不经过tcp连接,自己传入一个套接字

如果一只一个套接字已经跟redis服务器连接假设套接字是 5

redis-cli -s 5

-a 传入密码

如果服务器段有配置密码为 123456

redis-cli  -h 127.0.0.1 -p 6379 -a 123456

--pipe  将符合协议的数据批量发送到redis执行

好处可以将大量操作一次发送到redis服务端执行,减少网络交互

-v或--version redis版本

--raw 返回信息原样展示

--csv csv格式(对字符串中的部分转义字符会有展示,其他非可打印字符转化成16进制码值)

redis的协议中有很多\r\n,如果想调试看的话 可以用--csv格式

redis命令集涉及的代码在/src/redis-cli.go下

static int parseOptions(int argc, char **argv) {
    int i;

    for (i = 1; i < argc; i++) {
	//是否是最后一个参数
        int lastarg = i==argc-1;

        if (!strcmp(argv[i],"-h") && !lastarg) {//参数是-h,且不是最后一个参数 设置host
            sdsfree(config.hostip);
            config.hostip = sdsnew(argv[++i]);
        } else if (!strcmp(argv[i],"-h") && lastarg) {//参数是-h,且是最后一个参数,等同--help
            usage();
        } else if (!strcmp(argv[i],"--help")) {//输出命令行参数提示
            usage();
        } else if (!strcmp(argv[i],"-x")) {//从标准输入读取参数 类似 redis-cli -x < xxx.txt
            config.stdinarg = 1;
        } else if (!strcmp(argv[i],"-p") && !lastarg) {//参数是-p,且不是最后一个参数 设置端口
            config.hostport = atoi(argv[++i]);
        } else if (!strcmp(argv[i],"-s") && !lastarg) {//参数是-s,且不是最后一个参数 设置套接字
            config.hostsocket = argv[++i];
        } else if (!strcmp(argv[i],"-r") && !lastarg) {//命令重复执行次数,默认是1
            config.repeat = strtoll(argv[++i],NULL,10);
        } else if (!strcmp(argv[i],"-i") && !lastarg) {//重复执行命令,每次执行间隔,秒为单位默认是0
            double seconds = atof(argv[++i]);
            config.interval = seconds*1000000;
        } else if (!strcmp(argv[i],"-n") && !lastarg) {//选择数据库
            config.dbnum = atoi(argv[++i]);
        } else if (!strcmp(argv[i],"-a") && !lastarg) {//设置认证密码
            config.auth = argv[++i];
        } else if (!strcmp(argv[i],"--raw")) {//raw格式输出(返回信息原样输出)
            config.output = OUTPUT_RAW;
        } else if (!strcmp(argv[i],"--csv")) {//csv格式(对字符串中的部分转义字符会有展示,其他非可打印字符转化成16进制码值)
            config.output = OUTPUT_CSV;
        } else if (!strcmp(argv[i],"--latency")) {
            config.latency_mode = 1;
        } else if (!strcmp(argv[i],"--latency-history")) {
            config.latency_mode = 1;
            config.latency_history = 1;
        } else if (!strcmp(argv[i],"--slave")) {
            config.slave_mode = 1;
        } else if (!strcmp(argv[i],"--stat")) {
            config.stat_mode = 1;
        } else if (!strcmp(argv[i],"--scan")) {
            config.scan_mode = 1;
        } else if (!strcmp(argv[i],"--pattern") && !lastarg) {
            config.pattern = argv[++i];
        } else if (!strcmp(argv[i],"--intrinsic-latency") && !lastarg) {
            config.intrinsic_latency_mode = 1;
            config.intrinsic_latency_duration = atoi(argv[++i]);
        } else if (!strcmp(argv[i],"--rdb") && !lastarg) {
            config.getrdb_mode = 1;
            config.rdb_filename = argv[++i];
        } else if (!strcmp(argv[i],"--pipe")) {
            config.pipe_mode = 1;
        } else if (!strcmp(argv[i],"--pipe-timeout") && !lastarg) {
            config.pipe_timeout = atoi(argv[++i]);
        } else if (!strcmp(argv[i],"--bigkeys")) {
            config.bigkeys = 1;
        } else if (!strcmp(argv[i],"--eval") && !lastarg) { //执行lua脚本
            config.eval = argv[++i];
        } else if (!strcmp(argv[i],"-c")) {
            config.cluster_mode = 1;
        } else if (!strcmp(argv[i],"-d") && !lastarg) {
            sdsfree(config.mb_delim);
            config.mb_delim = sdsnew(argv[++i]);
        } else if (!strcmp(argv[i],"-v") || !strcmp(argv[i], "--version")) {//版本号
            sds version = cliVersion();
            printf("redis-cli %s\n", version);
            sdsfree(version);
            exit(0);
        } else {
            if (argv[i][0] == '-') {
                fprintf(stderr,
                    "Unrecognized option or bad number of args for: '%s'\n",
                    argv[i]);
                exit(1);
            } else {
                /* Likely the command name, stop here. */
                break;
            }
        }
    }
    return i;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值