Administrator
Published on 2025-11-24 / 0 Visits
0

Redis-CLI 登录详细说明

#AI

Redis-CLI 登录详细说明

目录

  1. 什么是 redis-cli
  2. 基本登录命令
  3. 常见连接场景详解
  4. 常用可选参数
  5. 退出登录
  6. 常见问题排查 (FAQ)

什么是 redis-cli

redis-cli (Redis Command Line Interface) 是 Redis 官方提供的一个命令行工具,用于与 Redis 服务器进行交互。它是 Redis 生态中最常用、最基础的客户端,可以用来执行 Redis 支持的所有命令,如数据的增删改查、服务器状态检查、配置修改等。

基本登录命令

redis-cli 的核心功能是建立与 Redis 服务器的连接。其最基本的命令格式如下:

redis-cli [OPTIONS]

当不带任何参数运行时,redis-cli 会尝试以默认配置连接 Redis 服务器。

常见连接场景详解

场景 1: 连接本地默认 Redis 服务

如果你的 Redis 服务运行在本地(127.0.0.1),并且使用默认端口(6379),那么直接运行 redis-cli 即可。

命令:

redis-cli

成功登录后,你会看到类似下面的提示符:

127.0.0.1:6379>

这个提示符表示你已经成功连接到 IP 为 127.0.0.1、端口为 6379 的 Redis 服务器。现在你可以输入任何 Redis 命令并执行,例如 PING

127.0.0.1:6379> PING
PONG

收到 PONG 响应说明连接正常。


场景 2: 连接指定主机和端口的 Redis 服务

在大多数生产或开发环境中,Redis 服务可能运行在另一台机器上,或者使用非默认端口。这时需要使用 -h (host) 和 -p (port) 参数来指定。

命令格式:

redis-cli -h <redis-host-ip> -p <redis-port>

示例:
假设 Redis 服务器 IP 地址为 192.168.1.100,端口为 6380

redis-cli -h 192.168.1.100 -p 6380

成功后提示符变为:

192.168.1.100:6380>

场景 3: 连接需要密码认证的 Redis 服务

为了安全,Redis 通常会设置密码。当连接到有密码保护的 Redis 服务时,有两种方式可以提供密码。

方式 A: 登录后认证(推荐)

  1. 先按照场景 1 或 2 的方式连接到 Redis 服务器。
    redis-cli -h 192.168.1.100 -p 6380
    
  2. 连接成功后,使用 AUTH 命令进行认证。
    192.168.1.100:6380> AUTH your_redis_password
    OK
    
    如果密码正确,服务器会返回 OK。之后你就可以执行所有授权范围内的命令了。

方式 B: 登录时直接提供密码(不推荐在生产环境命令行使用)

可以使用 -a (auth) 参数在连接命令中直接提供密码。

redis-cli -h 192.168.1.100 -p 6380 -a your_redis_password

注意: 这种方式的缺点是密码会明文显示在你的命令历史记录(history)中,存在安全风险。


场景 4: 连接 Redis 集群 (Cluster)

连接 Redis 集群时,redis-cli 需要一些特殊的处理来自动发现集群中的其他节点。关键参数是 -c (cluster)。

命令格式:

redis-cli -c -h <any-cluster-node-ip> -p <any-cluster-node-port>

你只需要提供集群中任意一个可用节点的 IP 和端口即可。

示例:

redis-cli -c -h 192.168.1.101 -p 6379

成功连接后,当你操作的数据不在当前连接的节点上时,redis-cli 会自动重定向(MOVED)到正确的节点,并执行命令。

192.168.1.101:6379> SET mykey "hello"
-> Redirected to slot [12539] located at 192.168.1.102:6379
OK
192.168.1.102:6379> GET mykey
"hello"

可以看到,提示符自动从 101 节点切换到了 102 节点。


场景 5: 通过 Unix 套接字 (Socket) 连接

在某些配置下,Redis 可能只监听 Unix 套接字文件,而不是 TCP/IP 端口。这种方式通常用于本地高性能通信。

命令格式:

redis-cli -s <socket-file-path>

示例:

redis-cli -s /var/run/redis/redis.sock

如果 Redis 同时设置了密码,同样需要在连接后使用 AUTH 命令。

常用可选参数

除了上述提到的 -h, -p, -a, -c, -s 之外,redis-cli 还有一些非常实用的参数:

  • --raw: 格式化输出,去掉多余的引号和换行符,便于脚本处理。
    redis-cli --raw GET mykey
    
  • --no-raw: 与 --raw 相反,强制使用带引号的默认格式。
  • -n <db-number>: 连接后直接切换到指定的数据库(默认为 0 号库)。
    redis-cli -n 1
    
  • -x: 从标准输入(stdin)读取最后一个参数。这在批量导入数据时非常有用。
    echo "hello world" | redis-cli -x SET mykey
    
  • -r <count>: 重复执行指定的命令 count 次。
    redis-cli -r 5 PING
    
  • -i <interval>: 每隔 interval 秒执行一次命令(单位为秒),配合 -r 使用。
    redis-cli -r 10 -i 1 INFO stats | grep keyspace_hits
    

退出登录

redis-cli 交互模式下,有多种方式可以退出:

  1. 输入 QUIT 命令 (推荐)
    127.0.0.1:6379> QUIT
    
  2. 输入 EXIT 命令
    127.0.0.1:6379> EXIT
    
  3. 使用快捷键
    • Ctrl + C
    • Ctrl + D

常见问题排查 (FAQ)

  1. Could not connect to Redis at 127.0.0.1:6379: Connection refused

    • 原因: Redis 服务未启动,或者监听的 IP/端口不对。
    • 解决方法:
      • 检查 Redis 服务是否正在运行: ps -ef | grep redis-server
      • 启动 Redis 服务: redis-server /path/to/your/redis.conf
      • 检查 redis.conf 配置文件中的 bindport 选项。
  2. (error) NOAUTH Authentication required.

    • 原因: Redis 服务器开启了密码认证,而你尚未提供密码。
    • 解决方法: 使用 AUTH <your_password> 命令进行认证。
  3. (error) WRONGPASS invalid password

    • 原因: 提供的密码不正确。
    • 解决方法: 确认密码无误后重新尝试。如果忘记密码,需要修改 redis.conf 中的 requirepass 配置项,然后重启 Redis 服务。
  4. 连接 Redis 集群时,MOVED 错误但没有自动重定向。

    • 原因: 连接集群时忘记添加 -c 参数。
    • 解决方法: 使用 redis-cli -c ... 命令重新连接。
  5. 远程连接时,服务器 IP 能 ping 通,但 redis-cli 连接失败。

    • 原因: 可能是防火墙(如 iptables, firewalld)或云服务商的安全组规则阻止了 6379 端口的访问。也可能是 Redis 配置中的 bind 选项只绑定了 127.0.0.1
    • 解决方法:
      • 检查并配置防火墙,开放 Redis 端口。
      • 修改 redis.conf 中的 bind 选项为 0.0.0.0 (允许所有 IP 访问) 或你客户端的 IP 地址,然后重启 Redis。注意:将 bind 设置为 0.0.0.0 存在安全风险,强烈建议配合密码和防火墙使用。