当前位置: 首页 > news >正文

redis 配置学习笔记

目录

查看版本:

启动服务:

指定端口启动

python启动 redis

python 连接redis.

启动带密码:

使用配置文件启动:


查看版本:

redis-server -v

启动服务:

redis-server

默认是localhost可以访问,端口6379

指定端口启动

# 使用6380端口启动,外部不能访问
redis-server --port 6380# 停止当前Redispkill -f "redis-server.*6380"# 重新启动,允许外部连接
redis-server --port 6380 --bind 0.0.0.0 --protected-mode no --daemonize yes

python启动 redis

import subprocess
import time
import redis
import os
import signaldef find_redis_pid(port):"""查找指定端口的 Redis 进程 PID"""try:result = subprocess.run(['netstat', '-tulnp'], capture_output=True, text=True)for line in result.stdout.splitlines():if f":{port} " in line and 'redis-server' in line:parts = line.split()pid_part = parts[-1]  # 形如 1234/redis-serverpid = pid_part.split('/')[0]return int(pid)return Noneexcept Exception as e:print(f"❌ 查找 Redis 进程出错: {e}")return Nonedef stop_redis_on_port(port):"""关闭指定端口的 Redis"""pid = find_redis_pid(port)if pid:try:os.kill(pid, signal.SIGTERM)time.sleep(1)print(f"🛑 已关闭 Redis 进程 (PID={pid}) on port {port}")return Trueexcept Exception as e:print(f"❌ 关闭 Redis 出错: {e}")return Falseelse:print(f"ℹ️ 未发现端口 {port} 上的 Redis 进程")return Falsedef test_redis_port(host='127.0.0.1', port=6380, password=None, db=0):"""测试 Redis 是否可连接"""try:r = redis.Redis(host=host, port=port, password=password, db=db, decode_responses=True)r.ping()print(f"✅ Redis {host}:{port} 连接成功")return Trueexcept redis.AuthenticationError:print(f"❌ 密码错误,无法连接 Redis {host}:{port}")except redis.ConnectionError:print(f"❌ Redis {host}:{port} 无法连接")return Falsedef start_redis_on_port(port=6380, password='StrongPass123', bind_ip='0.0.0.0'):"""启动 Redis:检测端口 → 停止旧进程 → 启动新实例"""try:# 如果已运行,先关闭if find_redis_pid(port):print(f"⚠️ 检测到 Redis 已在端口 {port} 运行,准备关闭...")stop_redis_on_port(port)# 启动 Redisprint(f"🚀 启动 Redis ({bind_ip}:{port}) ...")subprocess.Popen(['redis-server','--port', str(port),'--bind', bind_ip,'--requirepass', password,'--protected-mode', 'no','--daemonize', 'yes'])time.sleep(2)# 验证if test_redis_port(host=bind_ip, port=port, password=password):print(f"🎉 Redis 已在 {bind_ip}:{port} 成功启动 (密码: {password})")return Trueelse:print(f"❌ Redis 启动失败,请检查日志")return Falseexcept Exception as e:print(f"启动 Redis 出错: {e}")return Falseif __name__ == "__main__":start_redis_on_port(port=6380, password="infini_rag_flow")

python 连接redis.


import redis
import subprocess
import timedef test_redis_port(host='192.168.8.231', port=6380, db=0, password=None):"""测试Redis端口连接,可指定db"""try:# 创建 Redis 连接(支持密码和db)r = redis.Redis(host=host,port=port,db=db,password=password,decode_responses=True)r.ping()print(f"✅ Redis端口 {port} (db={db}) 连接成功")# 测试基本操作test_key = f'test_port_{port}_db{db}'r.set(test_key, f'Hello from port {port}, db {db}')value = r.get(test_key)print(f"测试数据: {value}")return Trueexcept redis.ConnectionError:print(f"❌ Redis端口 {port} (db={db}) 连接失败")return False
if __name__ == '__main__':port=6380if not test_redis_port(host='192.168.8.231',port=port,password='infini_rag_flow'):print("所有尝试的端口都失败了")

启动带密码:

import subprocess
import time
import redis
import os
import signaldef find_redis_pid(port):"""查找指定端口的 Redis 进程 PID"""try:result = subprocess.run(['netstat', '-tulnp'], capture_output=True, text=True)for line in result.stdout.splitlines():if f":{port} " in line and 'redis-server' in line:parts = line.split()pid_part = parts[-1]  # 形如 1234/redis-serverpid = pid_part.split('/')[0]return int(pid)return Noneexcept Exception as e:print(f"❌ 查找 Redis 进程出错: {e}")return Nonedef stop_redis_on_port(port):"""关闭指定端口的 Redis"""pid = find_redis_pid(port)if pid:try:os.kill(pid, signal.SIGTERM)time.sleep(1)print(f"🛑 已关闭 Redis 进程 (PID={pid}) on port {port}")return Trueexcept Exception as e:print(f"❌ 关闭 Redis 出错: {e}")return Falseelse:print(f"ℹ️ 未发现端口 {port} 上的 Redis 进程")return Falsedef test_redis_port(host='127.0.0.1', port=6380, password=None, db=0):"""测试 Redis 是否可连接"""try:r = redis.Redis(host=host, port=port, password=password, db=db, decode_responses=True)r.ping()print(f"✅ Redis {host}:{port} 连接成功")return Trueexcept redis.AuthenticationError:print(f"❌ 密码错误,无法连接 Redis {host}:{port}")except redis.ConnectionError:print(f"❌ Redis {host}:{port} 无法连接")return Falsedef start_redis_on_port(port=6380, password='StrongPass123', bind_ip='0.0.0.0'):"""启动 Redis:检测端口 → 停止旧进程 → 启动新实例"""try:# 如果已运行,先关闭if find_redis_pid(port):print(f"⚠️ 检测到 Redis 已在端口 {port} 运行,准备关闭...")stop_redis_on_port(port)# 启动 Redisprint(f"🚀 启动 Redis ({bind_ip}:{port}) ...")subprocess.Popen(['redis-server','--port', str(port),'--bind', bind_ip,'--requirepass', password,'--protected-mode', 'no','--daemonize', 'yes'])time.sleep(2)# 验证if test_redis_port(host=bind_ip, port=port, password=password):print(f"🎉 Redis 已在 {bind_ip}:{port} 成功启动 (密码: {password})")return Trueelse:print(f"❌ Redis 启动失败,请检查日志")return Falseexcept Exception as e:print(f"启动 Redis 出错: {e}")return Falseif __name__ == "__main__":start_redis_on_port(port=6380, password="infini_rag_flow")

使用配置文件启动:


import subprocess
import time
import redis
import os
import signaldef find_redis_pid(port):"""查找指定端口的 Redis 进程 PID"""try:result = subprocess.run(['netstat', '-tulnp'], capture_output=True, text=True)for line in result.stdout.splitlines():if f":{port} " in line and 'redis-server' in line:parts = line.split()pid_part = parts[-1]  # 形如 1234/redis-serverpid = pid_part.split('/')[0]return int(pid)return Noneexcept Exception as e:print(f"❌ 查找 Redis 进程出错: {e}")return Nonedef stop_redis_on_port(port):"""关闭指定端口的 Redis"""pid = find_redis_pid(port)if pid:try:os.kill(pid, signal.SIGTERM)time.sleep(1)print(f"🛑 已关闭 Redis 进程 (PID={pid}) on port {port}")return Trueexcept Exception as e:print(f"❌ 关闭 Redis 出错: {e}")return Falseelse:print(f"ℹ️ 未发现端口 {port} 上的 Redis 进程")return Falsedef test_redis_port(host='127.0.0.1', port=6380, password=None, db=0):"""测试 Redis 是否可连接"""try:r = redis.Redis(host=host, port=port, password=password, db=db, decode_responses=True)r.ping()print(f"✅ Redis {host}:{port} 连接成功")return Trueexcept redis.AuthenticationError:print(f"❌ 密码错误,无法连接 Redis {host}:{port}")except redis.ConnectionError:print(f"❌ Redis {host}:{port} 无法连接")return Falsedef start_redis_on_port(port=6380, password='StrongPass123', bind_ip='0.0.0.0'):"""稳定方式启动 Redis"""conf_path = f"/tmp/redis_{port}.conf"conf_content = f"""bind {bind_ip}port {port}protected-mode nodaemonize yesrequirepass {password}"""# 写配置文件with open(conf_path, "w") as f:f.write(conf_content)# 如果已有进程,先关闭if find_redis_pid(port):print(f"⚠️ 检测到 Redis 已在端口 {port} 运行,准备关闭...")stop_redis_on_port(port)print(f"🚀 启动 Redis ({bind_ip}:{port}) 使用配置文件 {conf_path}")subprocess.run(['redis-server', conf_path])time.sleep(2)# 测试连接if test_redis_port(host='127.0.0.1', port=port, password=password):print(f"🎉 Redis 已在 {bind_ip}:{port} 成功启动 (密码: {password})")return Trueelse:print(f"❌ Redis 启动失败,请检查 {conf_path}")return Falseif __name__ == "__main__":start_redis_on_port(port=6380, password="infini_rag_flow")

http://www.dtcms.com/a/466195.html

相关文章:

  • AI 指数走势透视:红利期或将延续?
  • 光影魔术手4.6.1.670|win中文|图像修改编辑器|安装教程
  • 利用小波分解进行模糊检测pywt.dwt2
  • 试用平台网站建设上海建设安全生产协会网站
  • 用《大前端++》项目特征解析雷总小米汽车的内忧远虑
  • 网络爬虫也叫做网络机器人
  • 台州网站制作 外贸wordpress数据清除
  • 视频网站中滑动列表怎么做的网页设计与制作实训报告的综合优化
  • 昌平手机网站建设北京传媒公司排行榜
  • 专注集团网站建设做网站网址
  • Flink Checkpoint 通用调优方案三种画像 + 配置模板 + 容量估算 + 巡检脚本 + 告警阈值
  • 做一个企业的网站怎么做网站开发合同怎么写
  • 大望路网站建设影楼微网站建设
  • 【滑动窗口专题】第二讲:无重复字符的最长子串
  • 如何简单的并且又能大幅度降低任务队列的锁粒度、提高吞吐量?
  • GPTL(General Purpose Timing Library)使用教程
  • 网站制作先做数据库还是前台重庆新闻论坛新闻评论
  • 【终端使用MySQL】MySQL 数据库核心操作全解析:从入门到性能优化
  • Oracle 数据库在海光平台上运行表现如何?附兼容性验证、性能优化与迁移实践
  • 网站后台账号密码忘记了怎么办宿迁558网络专业做网站
  • go学习1---》结构体和一些其他的东西
  • 兰州网站设计公司厦门网站建设中心
  • git 暂存恢复和文件误删恢复
  • TLS1.3后量子混合密钥协商技术解析及演进展望
  • flutter google play 应用不支持 16 KB
  • 无人机多处理协同作业控制姿态原理与实现
  • flutter mapbox_maps_flutter 应用不支持 16 KB
  • 佛山网站建设的首选求网站
  • 从 0 到 1 精通 MongoDB:实战场景 + 底层原理全解析
  • 建设门户网站的基本意义有哪些wordpress配置页面