Linux 查看 Redis 占用端口
在 Linux 系统中,我们经常需要查看某个进程占用了哪些端口。对于 Redis 这样的内存数据库,同样需要查看它所绑定的端口,以便进行相关配置或排查问题。本文将介绍如何在 Linux 系统中查看 Redis 占用的端口,并提供相应的代码示例。
1. 查看进程的端口
在 Linux 系统中,可以使用 netstat
命令来查看进程的端口占用情况。netstat
是一个用于显示网络连接、路由表和网络接口等网络相关信息的命令行工具。我们可以使用以下命令来查看 Redis 进程的端口:
netstat -tlnp | grep redis
上述命令中,-tlnp
参数表示只显示 TCP 连接的端口,grep redis
表示只显示包含 "redis" 的行。执行该命令后,会打印出 Redis 进程所占用的端口信息。
2. 使用 lsof 命令查看端口
除了 netstat
命令外,我们还可以使用 lsof
命令来查看进程的端口占用情况。lsof
是一个用于查看进程打开的文件和端口等信息的命令行工具。我们可以使用以下命令来查看 Redis 进程的端口:
sudo lsof -i :6379
上述命令中,-i
参数表示只显示网络连接信息,:6379
表示要查看的端口号。执行该命令后,会显示与 Redis 相关的进程信息,包括进程 ID(PID)和进程名称(COMMAND)。
3. 使用 ss 命令查看端口
另一个可以查看进程端口占用情况的命令是 ss
。ss
命令是一个用于查看套接字统计信息的命令行工具。我们可以使用以下命令来查看 Redis 进程的端口:
ss -lntp | grep redis
上述命令中,-lntp
参数表示只显示监听的 TCP 端口信息,grep redis
表示只显示包含 "redis" 的行。执行该命令后,会显示 Redis 进程所占用的端口信息。
4. Python 代码示例
除了使用命令行工具,我们还可以使用编程语言来查看 Redis 进程的端口占用情况。下面是使用 Python 语言的示例代码:
import psutil
def get_redis_ports():
redis_ports = []
for proc in psutil.process_iter(["pid", "name", "connections"]):
if proc.info["name"] == "redis-server":
connections = proc.info["connections"]
for conn in connections:
if conn.status == "LISTEN":
redis_ports.append(conn.laddr.port)
return redis_ports
if __name__ == "__main__":
redis_ports = get_redis_ports()
if len(redis_ports) > 0:
print("Redis process is listening on ports:")
for port in redis_ports:
print(port)
else:
print("Redis process is not running or not listening on any port.")
上述代码使用了 psutil 库来获取进程的信息,其中 psutil.process_iter(["pid", "name", "connections"])
返回一个迭代器,遍历所有进程并返回指定的进程信息。我们通过判断进程名称为 "redis-server",并获取其所有连接的信息。最后,输出 Redis 进程监听的端口。
流程图
下面是查看 Redis 占用端口的流程图:
flowchart TD
A[开始] --> B[使用 netstat 命令查看端口]
A --> C[使用 lsof 命令查看端口]
A --> D[使用 ss 命令查看端口]
A --> E[使用编程语言查看端口]
B --> F[输出端口信息]
C --> F
D --> F
E --> F
F --> G[结束]
总结
本文介绍了在 Linux 系统中查看 Redis 进程