当前位置:首页 > 问答 > 正文

Redis远程连接怎么简单配置,客户端那块其实也没那么复杂

关于Redis远程连接怎么简单配置,客户端那块其实也没那么复杂,这个事情我们可以分两步走:第一步是把Redis服务器本身设置成允许别人来连接,第二步才是客户端怎么去连它,咱们一步一步说,保证说得明白。

第一步:让Redis服务器“开门迎客”

默认情况下,Redis为了安全起见,是有点“自闭”的,它只允许同一台机器上的程序来连接,外人一概不理,这就像你家大门,默认只给自家人开,陌生人敲门是不开的,我们现在要做的,就是给它配一把“钥匙”,并告诉它可以给特定的人或者所有人开门。

这个配置主要靠修改Redis的一个配置文件,通常名字叫 redis.conf,你得先找到这个文件在哪,如果你是用包管理工具(比如apt-get或yum)安装的,它可能在 /etc/redis/ 目录下;如果是自己编译安装的,可能在你的安装目录里。

找到之后,用文本编辑器打开它,需要改动的主要是三个地方,咱们一个一个看:

Redis远程连接怎么简单配置,客户端那块其实也没那么复杂

  1. 绑定地址(bind): 这是最关键的一步,配置文件里有一行是 bind 127.0.0.1,这个 0.0.1 是个特殊的地址,代表“只允许本机访问”,你要想让别的机器能访问,就得改掉它,最简单粗暴的办法就是把这行注释掉(在行首加个),或者改成 bind 0.0.0.00.0.0 的意思就是“监听所有来自网络的连接请求”,相当于对全世界说“我家门开着,谁都可以来”,这样有点不安全,我们待会儿会说怎么加把锁,根据[Redis官方文档]的解释,bind参数用于指定Redis实例监听的网络接口。

  2. 保护模式(protected-mode): 这是Redis的一个安全兜底机制,如果你没有设置密码(下一步会说),并且又允许了远程连接(比如把bind改成了0.0.0.0),保护模式就会自动开启,继续拒绝外部的连接,如果你想在不设密码的情况下允许远程连接(非常不推荐!),就需要把 protected-mode yes 改成 protected-mode no,把这个保护罩关掉,但[Redis官方文档]强烈建议,在任何暴露于公网的配置中,都应保持保护模式开启,并配置密码。

  3. 设置密码(requirepass): 这是最推荐的安全措施,给你的Redis设个密码,就像给大门加把锁,只有有钥匙(密码)的人才能进来,在配置文件里找到 # requirepass foobared 这一行,把前面的注释符号 去掉,然后把 foobared 换成你自己想设的、足够复杂的密码,比如改成 requirepass MySuperStrongPassword123!,这样,即使别人找到了你的服务器地址,没有密码也进不来。

改完这三个配置后,最重要的一步是:重启Redis服务,让新的配置生效,重启的方法取决于你的操作系统和安装方式,一般是执行像 sudo systemctl restart redissudo service redis-server restart 这样的命令。

Redis远程连接怎么简单配置,客户端那块其实也没那么复杂

好了,到这儿,服务器这边就准备好了,它现在已经在一个开放的端口(默认6379)上听着呢,并且等着有密码的客户端来连接。

第二步:客户端轻松连接

服务器准备好了,客户端去连接就真的很简单了,没什么复杂的,不管你是用命令行工具,还是用各种编程语言(比如Python、Java、Node.js)的库,道理都一样,需要的就是三样东西:

  1. 服务器的IP地址: 就是你那台装了Redis的机器的公网IP地址,如果客户端和服务器在同一台机器,可以继续用 0.0.1
  2. 端口号(Port): 默认是 6379,如果你没改过,就用这个。
  3. 密码(Password): 就是你刚才在 requirepass 那里设的那个密码。

咱们举两个最常见的例子:

Redis远程连接怎么简单配置,客户端那块其实也没那么复杂

  • 用命令行工具 redis-cli 连接: 通常我们在本机连接测试是用 redis-cli 这个命令,要连接远程的,只需要加上 -h 指定主机地址,-p 指定端口(如果不是默认的),-a 指定密码,像这样: redis-cli -h 你的服务器IP地址 -p 6379 -a 你设置的密码 敲回车,如果一切正常,你就会看到命令提示符变成了 你的服务器IP地址:6379>,这说明你已经成功连上了,可以执行各种Redis命令了。

  • 用编程语言连接(以Python为例): 在Python里,有个很常用的库叫 redis,你先要用 pip install redis 安装它,然后写代码就几行的事:

    import redis
    # 创建一个连接对象,把参数传进去
    r = redis.Redis(
        host='你的服务器IP地址',
        port=6379,
        password='你设置的密码',
        decode_responses=True  # 这个参数让返回的结果是字符串而不是字节,用起来更方便
    )
    # 现在可以操作了,比如设置一个键值对
    r.set('mykey', 'Hello from remote!')
    # 再取出来看看
    value = r.get('mykey')
    print(value)  # 会输出:Hello from remote!

    看,就是这么直白,其他语言比如Java、Go、PHP等,逻辑完全一样,只是语法不同而已,都是找一个对应的Redis客户端库,然后传入主机、端口、密码这三个核心参数建立连接。

最后再啰嗦两句安全

允许远程连接虽然方便,但也增加了风险,所以务必记住:

  • 密码一定要设,而且要设得复杂,别用简单的123456这种。
  • 如果可能,最好配置防火墙(比如iptables或云服务商的安全组),只允许你信任的特定IP地址来访问Redis的6379端口,这样就更安全了。
  • 除非有特殊需求,否则不要轻易关闭保护模式(protected-mode)。

Redis远程连接配置,服务器端就是改配置文件里的绑定地址、保护模式和密码,然后重启服务;客户端就是用地址、端口、密码这三样去连,客户端那边真的就是传个参数的事儿,一点都不复杂,希望这个解释能帮到你。