前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
1. 先切换到root用户(需要使用root用户的权限)
如果是普通用户使用su命令切换到root
2. 使用 apt 命令来搜索 redis 相关的软件包
apt search redis
我们安装的是Ubuntu最新最全的7.0系统,如下图

3.使用apt命令安装redis
apt install redis

然后输入Y
自动下载完成后,可以自行用命令检查是否安装成功
netstat -anp | grep redis

如果输出结果为下,就表示安装成功了,并且我们要了解Redis的默认端口号是6379
4.修改Redis的配置文件
cd /etc/redis/
vim redis.conf

可以打开配置文件去修改配置
第一个需要修改的地方

通过滚轮滑动(在第87行)找到bind 127.0.0.1进行一个修改,只需要把前面的IP地址转化为0.0.0.0,注意后面非IP地址的部分不要修改
修改的原因:
绑定这个 127.0.0.1 的 ip 意味着只能由当前主机上的客户端访问
跨主机就访问不了了~~
第二个修改的地方:
将保护模式关掉在第111行

5.重新启动服务器
命令:
service redis-server restart
如果没有任何提示就表示我们的重启成功了,同时我们也可以通过命令去判别到底有没有更新成功
service redis-server status

有这个绿色的标志就代表Redis服务器正在运行当中
6.使用Redis自带的客户端来连接服务器
redis-cli
自己需要ping一下
如果显示的PONG就代表Redis安装成功~

最后要补充的是如何退出这个命令呢?
CTRL + d 表示退出redis客户端
至此,我们就成功在ubuntu上安装了redis!
下面是对指令的一些解释补充,来加深我们的理解,读者可自行阅读~
TIP1:为什么有CTRL+D来退出redis客户端
简单来说,Ctrl+D 并不是 Redis 客户端自己定义的快捷键,而是 Linux/Unix 终端的一个通用“信号”。
下面我为你详细解释它的工作原理和含义。
核心原因:EOF (End-of-File)
Ctrl+D 的本质是向正在运行的程序发送一个 “文件结束符”(End-of-File, EOF) 信号。
-
标准输入(stdin):在 Linux 中,每个命令行程序(比如
redis-cli)启动后,都会默认打开一个“标准输入”通道,等待用户输入命令。你可以把它想象成一个无限长的“文件”,程序一直在读取这个“文件”的内容。 -
EOF 的作用:当你在终端里按下
Ctrl+D时,你其实是在告诉终端驱动程序:“我的输入到此结束了,后面没有内容了”。终端驱动程序会将这个“输入结束”的信号(EOF)传递给正在前台运行的程序(也就是redis-cli)。 -
Redis 客户端的反应:
redis-cli程序接收到 EOF 信号后,会认为“用户已经不会再给我发命令了”,于是它就会执行一个优雅的退出流程:- 关闭与 Redis 服务器的连接。
- 释放占用的资源。
- 退出进程,将你返回到 Shell 提示符。
这就是为什么 Ctrl+D 能退出 Redis 客户端的根本原因。它不是 Redis 的“ quit 命令”,而是对所有读取标准输入的命令行程序都有效的“我说完了”的信号。
TIP2:netstat -anp | grep redis指令的解释
第一部分:netstat -anp
netstat(Network Statistics)是一个用于显示网络连接、路由表、接口统计等网络相关信息的命令行工具。后面的 -anp 是它的三个常用选项:
-a(all):显示所有连接和监听端口。默认情况下,netstat不会显示处于监听(LISTEN)状态的套接字,这个选项会把它们也显示出来。-n(numeric):以数字形式显示地址和端口号。如果不加这个选项,netstat会尝试将 IP 地址解析为主机名(如my-server),将端口号解析为服务名(如http)。使用-n可以加快命令执行速度,并避免因 DNS 解析问题导致的延迟或错误。-p(program):显示与网络连接相关的进程 ID (PID) 和进程名称。这是非常关键的一个选项,它能告诉你到底是哪个程序在使用这个端口或建立这个连接。注意:通常需要 root 权限才能看到所有进程的信息。
所以,netstat -anp 单独执行,会列出系统上所有的网络连接(包括 TCP、UDP)、监听端口,并以数字形式显示地址和端口,同时显示出是哪个进程在使用它们。
第二部分:| grep redis
|(管道符):这是 Linux 的管道操作符。它将前一个命令(netstat -anp)的输出结果,作为后一个命令(grep redis)的输入。grep redis:grep是一个强大的文本搜索工具。它会从输入中筛选出包含 “redis” 字符串的行。
组合起来:netstat -anp | grep redis
这个命令的整体作用就是:从系统所有的网络连接信息中,筛选出与 Redis 服务相关的连接和监听端口信息。
它通常会输出类似下面的内容:
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1234/redis-server
tcp 0 0 192.168.1.100:6379 192.168.1.200:54321 ESTABLISHED 1234/redis-server
tcp 0 0 192.168.1.100:6379 192.168.1.201:12345 ESTABLISHED 1234/redis-server
输出列的含义(从左到右):
- 协议:如
tcp或udp。 - Recv-Q:接收队列中当前的字节数。
- Send-Q:发送队列中当前的字节数。
- 本地地址:服务器的 IP 和端口。
127.0.0.1:6379表示 Redis 只监听本地回环地址,0.0.0.0:6379表示监听所有网卡。 - 外部地址:客户端的 IP 和端口。
0.0.0.0:*表示还没有建立连接(处于监听状态),192.168.1.200:54321表示一个已建立的连接。 - 状态:
LISTEN:正在监听连接(通常是服务端)。ESTABLISHED:连接已建立。TIME_WAIT:连接已关闭,正在等待超时以彻底断开。CLOSE_WAIT:远程端已关闭连接,等待本地应用程序关闭。
- PID/Program name:使用该端口的进程的 PID 和名称,如
1234/redis-server。这是确认是 Redis 进程的关键证据。
这个命令的常见用途和场景:
- 确认 Redis 服务是否启动并正常监听:
- 如果能看到
LISTEN状态的行,说明 Redis 服务已经成功启动并在监听端口(默认 6379)。 - 如果没有任何输出,通常意味着 Redis 服务没有启动,或者没有使用默认端口。
- 如果能看到
- 检查 Redis 绑定的 IP 地址:
- 查看本地地址是
127.0.0.1:6379还是0.0.0.0:6379或服务器的具体 IP。这对于安全配置至关重要。如果显示0.0.0.0,意味着 Redis 允许来自任何网络接口的连接,如果没有设置密码,会有严重的安全风险。
- 查看本地地址是
- 查看当前有哪些客户端连接到了 Redis:
- 所有状态为
ESTABLISHED的行都代表一个活跃的客户端连接。你可以看到客户端的 IP 地址(外部地址列),这对于排查问题、审计访问来源非常有用。
- 所有状态为
- 排查连接问题:
- 如果应用程序无法连接 Redis,可以用这个命令检查 Redis 是否在监听、是否绑定了正确的 IP、是否有大量的连接处于
TIME_WAIT或CLOSE_WAIT状态(可能意味着连接泄漏或应用未正确关闭连接)。
- 如果应用程序无法连接 Redis,可以用这个命令检查 Redis 是否在监听、是否绑定了正确的 IP、是否有大量的连接处于
- 确认是哪个进程占用了 Redis 端口:
- 虽然我们知道是 Redis,但在某些情况下(比如端口冲突),
-p选项可以明确告诉你进程的 PID 和名称,方便你用kill命令结束它。
- 虽然我们知道是 Redis,但在某些情况下(比如端口冲突),
注意事项和现代替代方案
- 权限问题:
-p选项通常需要sudo或 root 权限才能显示所有进程信息。普通用户可能只能看到自己拥有的进程。 netstat已逐渐被ss取代:netstat属于net-tools包,这个包在很多新的 Linux 发行版中已被标记为过时(deprecated)。推荐使用更现代、更高效的ss命令(属于iproute2包)。
等效的现代命令是:
sudo ss -antp | grep redis
ss的选项与netstat非常相似:-a:显示所有套接字。-n:以数字形式显示端口。-t:仅显示 TCP 连接(Redis 通常用 TCP)。-p:显示进程信息。
总结
netstat -anp | grep redis 是一个用于快速诊断 Redis 网络状态的运维命令。它能让你一眼看出 Redis 是否在运行、监听在哪个地址、有哪些客户端连接以及连接状态如何,是 Linux 系统管理员和开发人员排查 Redis 相关网络问题的首选工具之一。
1626

被折叠的 条评论
为什么被折叠?



