python连接Linux中的Redis

本文介绍了如何配置Linux Redis以允许远程访问,包括解除bind限制、关闭保护模式、启用守护进程以及防火墙设置。接着,详细讨论了使用redis-py库进行连接,包括普通连接、连接池、管道和发布订阅操作。通过管道实现批量命令执行,提升读写效率,并展示了发布订阅模式在消息传输中的应用。

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

一,准备远程访问工作

  1. Redis开启远程访问
    • 将bind 127.0.0.1注释
    • protected-mode 改为no
    • daemonize 改为yes
  2. 将Linux防火墙关掉(如下常用命根据情况参考)
    • 关闭防火墙命令:systemctl stop firewalld.service
    • 开启防火墙:systemctl start firewalld.service
    • 关闭开机自启动:systemctl disable firewalld.service
    • 开启开机启动:systemctl enable firewalld.service
  3. 如果关闭防火墙不好使则用如下方法
    • 安装iptables

    • yum install iptables-services

    • 开放端口 vim /etc/sysconfig/iptables

      -A INPUT -m state --state NEW -m tcp -p tcp dport 80 -j ACCEPT   #开放端口
      -A INPUT -m state --state NEW -m tcp -p tcp dport 6379 -j ACCEPT #开放端口
      -A INPUT -m state --state NEW -m tcp -p tcp dport 3306 -j ACCEPT #开放端口
      -I INPUT -s 113.106.93.110 -p tcp --dport 8089 -j DROP #禁止指定IP访问 8089
      -I INPUT -s 113.106.93.110 -p tcp --dport 8080 -j ACCEPT #开放固定ipIP访问 8080
      
    • 执行 /etc/init.d/iptables restart 命令将iptables服务重启

    • 执行/etc/rc.d/init.d/iptables save

二,Redis的API使用

redis-py的API的使用可以分类为:
  • 连接方式
    • 普通连接
    • 连接池
  • 操作
    • String/Hash/List/Set/Sort Set操作
  • 管道
  • 发布订阅
  1. 连接方式
    • 普通连接</

### 如何从本地机器连接Linux 服务器上的 Redis 为了实现从本地机器连接到远程 Linux 服务器上的 Redis 数据库,需要完成以下几个方面的配置: #### 1. 修改 `redis.conf` 配置文件 在 Linux 上部署的 Redis,默认情况下会绑定到 localhost (即 127.0.0.1),这意味着它只允许来自同一台机器的客户端访问。如果希望外部设备能够连接,则需修改 `/etc/redis/redis.conf` 文件中的 bind 参数。 - 打开并编辑该配置文件: ```bash vim /etc/redis/redis.conf ``` - 将原有的 `bind 127.0.0.1` 注释掉或者改为具体的 IP 地址(如服务器公网地址)。例如: ```plaintext # bind 127.0.0.1 bind 0.0.0.0 ``` 此更改使得 Redis 可接受任何来源的请求[^3]。 #### 2. 设置密码保护机制 出于安全考虑,在开放网络环境下的 Redis 实例应该启用身份验证功能。同样是在 `redis.conf` 中找到如下字段,并设置一个复杂度较高的密码字符串作为 value 值赋予 requirepass 属性。 ```plaintext requirepass your_strong_password_here ``` 保存后重启服务生效[^2]。 #### 3. 开启防火墙端口放行 默认情况下,Redis 使用的是 TCP 的 6379 端口号通信。因此还需要确认目标主机的操作系统层面已解除对该特定端口的数据包拦截策略。 对于基于 iptables 或 firewalld 的场景分别执行下面指令之一即可达成目的: ```bash iptables -A INPUT -p tcp --dport 6379 -j ACCEPT firewall-cmd --zone=public --add-port=6379/tcp --permanent && firewall-cmd --reload ``` #### 4. 远程连接测试 最后一步是从个人电脑尝试建立实际链接关系。假设读者使用 Windows 平台的话,推荐下载官方提供的 redis-cli 工具版本;而对于 macOS 用户而言则可以直接利用 Homebrew 包管理器快速获取最新二进制程序副本。 无论哪种情况都需要指定完整的 URI 形式参数来发起调用动作,比如这样: ```bash redis-cli -h {server_ip} -p 6379 -a 'your_set_password' ``` 其中 `{server_ip}` 替换为目标实例所在物理位置的真实 IPv4 数字串表示形式[^1]。 以上就是整个流程概述以及具体实施细节说明文档的内容摘要部分了! ```python import redis r = redis.Redis( host='YOUR_SERVER_IP', port=6379, password='your_strong_password_here') print(r.ping()) # Should output True if connection is successful. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值