目录查看版本启动服务测试端口指定端口启动python启动 redispython 连接redis.启动带密码使用配置文件启动查看版本redis-server -v启动服务redis-server默认是localhost可以访问端口6379测试端口redis-cli -h 192.168.100.201 -p 6379 ping指定端口启动# 使用6380端口启动外部不能访问 redis-server --port 6380 # 停止当前Redispkill -f redis-server.*6380# 重新启动允许外部连接 redis-server --port 6380 --bind 0.0.0.0 --protected-mode no --daemonize yespython启动 redisimport subprocess import time import redis import os import signal def find_redis_pid(port): 查找指定端口的 Redis 进程 PID try: result subprocess.run([netstat, -tulnp], capture_outputTrue, textTrue) 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-server pid pid_part.split(/)[0] return int(pid) return None except Exception as e: print(f❌ 查找 Redis 进程出错: {e}) return None def 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 True except Exception as e: print(f❌ 关闭 Redis 出错: {e}) return False else: print(fℹ️ 未发现端口 {port} 上的 Redis 进程) return False def test_redis_port(host127.0.0.1, port6380, passwordNone, db0): 测试 Redis 是否可连接 try: r redis.Redis(hosthost, portport, passwordpassword, dbdb, decode_responsesTrue) r.ping() print(f✅ Redis {host}:{port} 连接成功) return True except redis.AuthenticationError: print(f❌ 密码错误无法连接 Redis {host}:{port}) except redis.ConnectionError: print(f❌ Redis {host}:{port} 无法连接) return False def start_redis_on_port(port6380, passwordStrongPass123, bind_ip0.0.0.0): 启动 Redis检测端口 → 停止旧进程 → 启动新实例 try: # 如果已运行先关闭 if find_redis_pid(port): print(f⚠️ 检测到 Redis 已在端口 {port} 运行准备关闭...) stop_redis_on_port(port) # 启动 Redis print(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(hostbind_ip, portport, passwordpassword): print(f Redis 已在 {bind_ip}:{port} 成功启动 (密码: {password})) return True else: print(f❌ Redis 启动失败请检查日志) return False except Exception as e: print(f启动 Redis 出错: {e}) return False if __name__ __main__: start_redis_on_port(port6380, passwordinfini_rag_flow)python 连接redis.import redis import subprocess import time def test_redis_port(host192.168.8.231, port6380, db0, passwordNone): 测试Redis端口连接可指定db try: # 创建 Redis 连接支持密码和db r redis.Redis( hosthost, portport, dbdb, passwordpassword, decode_responsesTrue ) r.ping() print(f✅ Redis端口 {port} (db{db}) 连接成功) # 测试基本操作 test_key ftest_port_{port}_db{db} r.set(test_key, fHello from port {port}, db {db}) value r.get(test_key) print(f测试数据: {value}) return True except redis.ConnectionError: print(f❌ Redis端口 {port} (db{db}) 连接失败) return False if __name__ __main__: port6380 if not test_redis_port(host192.168.8.231,portport,passwordinfini_rag_flow): print(所有尝试的端口都失败了)启动带密码import subprocess import time import redis import os import signal def find_redis_pid(port): 查找指定端口的 Redis 进程 PID try: result subprocess.run([netstat, -tulnp], capture_outputTrue, textTrue) 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-server pid pid_part.split(/)[0] return int(pid) return None except Exception as e: print(f❌ 查找 Redis 进程出错: {e}) return None def 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 True except Exception as e: print(f❌ 关闭 Redis 出错: {e}) return False else: print(fℹ️ 未发现端口 {port} 上的 Redis 进程) return False def test_redis_port(host127.0.0.1, port6380, passwordNone, db0): 测试 Redis 是否可连接 try: r redis.Redis(hosthost, portport, passwordpassword, dbdb, decode_responsesTrue) r.ping() print(f✅ Redis {host}:{port} 连接成功) return True except redis.AuthenticationError: print(f❌ 密码错误无法连接 Redis {host}:{port}) except redis.ConnectionError: print(f❌ Redis {host}:{port} 无法连接) return False def start_redis_on_port(port6380, passwordStrongPass123, bind_ip0.0.0.0): 启动 Redis检测端口 → 停止旧进程 → 启动新实例 try: # 如果已运行先关闭 if find_redis_pid(port): print(f⚠️ 检测到 Redis 已在端口 {port} 运行准备关闭...) stop_redis_on_port(port) # 启动 Redis print(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(hostbind_ip, portport, passwordpassword): print(f Redis 已在 {bind_ip}:{port} 成功启动 (密码: {password})) return True else: print(f❌ Redis 启动失败请检查日志) return False except Exception as e: print(f启动 Redis 出错: {e}) return False if __name__ __main__: start_redis_on_port(port6380, passwordinfini_rag_flow)使用配置文件启动import subprocess import time import redis import os import signal def find_redis_pid(port): 查找指定端口的 Redis 进程 PID try: result subprocess.run([netstat, -tulnp], capture_outputTrue, textTrue) 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-server pid pid_part.split(/)[0] return int(pid) return None except Exception as e: print(f❌ 查找 Redis 进程出错: {e}) return None def 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 True except Exception as e: print(f❌ 关闭 Redis 出错: {e}) return False else: print(fℹ️ 未发现端口 {port} 上的 Redis 进程) return False def test_redis_port(host127.0.0.1, port6380, passwordNone, db0): 测试 Redis 是否可连接 try: r redis.Redis(hosthost, portport, passwordpassword, dbdb, decode_responsesTrue) r.ping() print(f✅ Redis {host}:{port} 连接成功) return True except redis.AuthenticationError: print(f❌ 密码错误无法连接 Redis {host}:{port}) except redis.ConnectionError: print(f❌ Redis {host}:{port} 无法连接) return False def start_redis_on_port(port6380, passwordStrongPass123, bind_ip0.0.0.0): 稳定方式启动 Redis conf_path f/tmp/redis_{port}.conf conf_content f bind {bind_ip} port {port} protected-mode no daemonize yes requirepass {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(host127.0.0.1, portport, passwordpassword): print(f Redis 已在 {bind_ip}:{port} 成功启动 (密码: {password})) return True else: print(f❌ Redis 启动失败请检查 {conf_path}) return False if __name__ __main__: start_redis_on_port(port6380, passwordinfini_rag_flow)