centos7服务器配置redis5后台运行,并进行远程连接。

centos7服务器配置redis5后台运行,并用python进行远程连接。

远程连接redis,需要提前设置好密码,否则连接不上。网上又说关闭验证功能,但是会降低安全性,不可能这么做的。

操作方法如下:

第一部分:redis配置

  1. 在redis安装目录下,使用vim打开redis.conf文件。
    使用which redis-server查询安装位置
  2. 修改如下参数:(没有该文件的话可以到redis的安装包中找,把它拷贝到安装目录下)
    找到#requirepass foobared 修改为requirepass <自定义密码>
    找到daemonize no 修改为 daemonize yes 开启后台运行
    找到bind 127.0.0.1修改为bind 0.0.0.0(这一步刚开始改错位置了,卡了很久,注意这个bind开头默认没有井号)
  3. /usr/local/redis/bin目录下输入以下指令重启redis:
    停止redis:
    ./redis-cli -h 127.0.0.1 -p <redis端口,默认6379> -a <redis密码> shutdown
    启动redis:./redis-server redis.conf

第二部分:防火墙设置

可以直接关闭防火墙,但是不安全。下面是开启防火墙后的设置。

  1. 开启防火墙systemctl start firewalld
  2. 查看是否开放6379端口,会提示yes或no:firewall-cmd --query-port=6379/tcp
  3. 如果没有开启:firewall-cmd --zone=public --add-port=6379/tcp --permanent 然后firewall-cmd --reload重启防火墙。
  4. 重启查看是否开放6379端口.

第三部分:设置安全组

购买的阿里、百度、腾讯等云服务器的,还需要检查服务器管理页面的安全组是否开放了对应端口。
以下为参考配置,开放了6380到6384端口:

在这里插入图片描述

至此,操作结束,尝试远程连接即可。

以下为使用python实现的redis消息发布与订阅功能的模块示例

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @File     : ./lib/redisPSMode.py
# @Software  : PyCharm
# @author    : dorlolo
# @contact   : 428192774@qq.com
# @Time     : 2021/4/16   16:02
import redis
import json
class redisPSMode():
    def __init__(self,host,port,db,password=None):
        self.__conn = redis.StrictRedis(host=host, port=port, db=db,password=password)
        self.channel=None
    """
    消息发布
    """
    def publishMessage(self,data,channel):
        self.channel = channel
        if not isinstance(data, str):
            msg = json.dumps(data)
        self.__conn.publish(self.channel, data)
        return True

    """
    消息订阅
    """
    def subscribe(self,channel):  # 定义订阅方法
        self.channel = channel
        pub = self.__conn.pubsub()
        pub.subscribe(self.channel)
        pub.parse_response()
        return pub

消息订阅:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @File     : accept.py
# @Software  : PyCharm
# @author    : dorlolo
# @contact   : 428192774@qq.com
# @Time     : 2021/4/16   16:03
from lib.redisPSMode import  redisPSMode
#服务器参数
rediserver1 = {
    "host": "106.12.81.117",#服务器地址
    "port": 6379,#redis端口
    "db": 15, #所需连接的redis数据库
    "password": "dorlolo911"#redis密码
}
def test_online():
    rps = redisPSMode(**rediserver1)
    acc = rps.subscribe(["dusthistory","crane1","crane2"])#添加订阅频道
    for item in acc.listen():  # 监听状态:有消息发布了就拿过来
        if item['type'] == 'message':
            print(item)
            # print(item['channel'])
            # print(item['data'])
if __name__ == '__main__':
    test_online()

发布消息:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @File     : push.py
# @Software  : PyCharm
# @author    : dorlolo
# @contact   : 428192774@qq.com
# @Time     : 2021/4/16   16:02

from lib.redisPSMode import  redisPSMode

#自己的服务器测试
rediserver1 = {
    "host": "106.12.81.117",#服务器地址
    "port": 6379,#redis端口
    "db": 15, #所需连接的redis数据库
    "password": "dorlolo911"#redis密码
}

if __name__ == '__main__':
rps=redisPSMode(**rediserver1)
"""向dusthistory频道发布消息"""
rps.publishMessage("hello","dusthistory")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值