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 命令查看端口

另一个可以查看进程端口占用情况的命令是 ssss 命令是一个用于查看套接字统计信息的命令行工具。我们可以使用以下命令来查看 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 进程