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

Linux目录介绍+Redis部署(小白篇)

目录

    • 👑Linux基础
      • ✨【目录】
    • 👑Redis 安装
      • 1.下载压缩包
      • 2.解压
      • 3.安装编译环境
      • 4.安装到本地
      • 5.设置开机自启
    • 👑Linux 自启服务


👑Linux基础

虽然在大二的时候学过Linux,但是很多基础知识都忘了,想再次从基础捡起,所以整理出了这本笔记,希望能帮助到学Linux系统的小伙伴

✨【目录】

在 Linux 系统中,目录结构遵循 Filesystem Hierarchy Standard (FHS) 标准,所有目录从根目录 / 开始,形成一个树状层级结构。以下是主要目录及其作用的详细说明:

[root@localhost /]$ tree -L 1 /
/
├── afs						# AFS文件空间的根目录
├── bin -> usr/bin  		# 存放所有用户可用的基本命令(如 ls, cp, mv 等)
├── boot                     # 存放系统启动所需的文件(如内核 vmlinuz、引导加载器 grub 等)
├── dev						# 以文件形式表示硬件设备或虚拟设备
├── etc						# 存放系统的配置文件
├── home					# 普通用户的主目录,每个用户拥有独立的子目录(如 /home/user1)
├── lib -> usr/lib			# 存放系统运行所需的共享库文件(类似 Windows 的 DLL)
├── lib64 -> usr/lib64		# 存放系统运行所需的共享库文件(类似 Windows 的 DLL)
├── media					# 用于挂载外部存储设备(如 U 盘、光盘、网络磁盘)
├── mnt						# 用于挂载外部存储设备(如 U 盘、光盘、网络磁盘)
├── opt						# 存放第三方独立软件(如大型商业软件或自定义服务)
├── proc					# 虚拟文件系统,提供内核和进程的实时信息
├── root				    # 系统管理员(root)的主目录,普通用户无权访问
├── run					    # 存放系统运行时的临时文件(如进程 PID 文件、锁文件)
├── sbin -> usr/sbin         # 存放系统管理员使用的系统管理命令(如 fdisk, iptables, reboot)
├── srv						# 存放服务相关的数据(如 FTP、Git 仓库)
├── sys						# 虚拟文件系统,提供硬件和内核的配置接口(如电源管理、设备驱动)
├── tmp						# 存放临时文件,系统重启后自动清空
├── usr						# 存放用户安装的应用程序和共享资源(类似 Windows 的 Program Files)
└── var						# 存放经常变化的动态数据(如日志、缓存、数据库)
  • tree -L 1 /:使用 -L 参数指定目录树的深度为 1
  • tree -L 1 -d /:使用 -d 参数,忽略文件,只查看目录

Linux学习目录

标题目的
Linux系统常用命令的使用Linux系统常用命令的使用_
Linux中 vim 编辑器的使用Linux中 vim 编辑器的使用_
Linux配置网桥!配置虚拟网络!Linux 中 如何配置网桥?如何配置虚拟网络?
Linux 网络接口管理Linux 中 网络接口管理
linux软件包的安装与管理linux软件包的安装与管理
linux 云计算平台基本环境(知识准备篇)linux 云计算平台基本环境(知识准备篇)

👑Redis 安装

  • redis下载地址官网:https://download.redis.io/releases/

1.下载压缩包

Linux下载压缩包,命令如下:

  • 下载最新稳定版本

    wget https://download.redis.io/redis-stable.tar.gz
    
  • 下载指定版本

    wget http://download.redis.io/releases/redis-6.2.10.tar.gz
    

2.解压

Linux解压压缩包可以使用,tar -xzvf ,解释如下:

  • -x:解压(extract)文件。
  • -z:处理 .gz 压缩格式(如果文件是 .tar.bz2,则用 -j)。
  • -v:显示解压过程(verbose,可选)。
  • -f:指定文件名。
  • -C:指定解压到的目录(注意大写字母 C

解压到当前目录下,命令如下

tar -xzvf  redis-stable.tar.gz

解压到指定目录下,命令如下:

tar -xzvf  redis-stable.tar.gz -C 路径

如果不是管理员用户的话,记得加上sudo,如:

 sudo tar -xzvf  redis-stable.tar.gz -C /opt/

这些都是从当前目录的压缩包出发的,如果压缩包在另一个目录,可以使用:

tar -xzvf /路径/to/file.tar.gz

-C:指定目录

3.安装编译环境

  • 命令:

    sudo yum install -y gcc-c++
    

    安装之后,进入安装好的redis-stable目录下,博主是安装在/opt/目录下的,

    [root@localhost redis-stable]$ pwd
    /opt/redis-stable
    
  • 编译

     cd redis-stable/make
    
  • 如图所示:

    在这里插入图片描述

4.安装到本地

编译成功之后,在src文件夹中多了2个文件

  • redis-server: redis服器
  • redis-cli: redis命令行客户端

使用make install

[root@localhost redis-stable]$ sudo make install
[sudo] root 的密码:
for dir in src; do make -C $dir install; done
make[1]: 进入目录“/opt/redis-stable/src”Hint: It's a good idea to run 'make test' ;)INSTALL redis-serverINSTALL redis-benchmarkINSTALL redis-cli
make[1]: 离开目录“/opt/redis-stable/src”

redis的源码目录中拷贝redis.confredis的安装目录

  1. 进入Redis安装目录:

     cd /usr/local/bin/
    

    例如:

    [root@localhost redis-stable]$ cd /usr/local/bin/
    [root@localhost bin]$ ll
    总用量 30404
    -rwxr-xr-x. 1 root root  6421360  524 13:00 redis-benchmark
    lrwxrwxrwx. 1 root root       12  524 13:00 redis-check-aof -> redis-server
    lrwxrwxrwx. 1 root root       12  524 13:00 redis-check-rdb -> redis-server
    -rwxr-xr-x. 1 root root  7267224  524 13:00 redis-cli
    lrwxrwxrwx. 1 root root       12  524 13:00 redis-sentinel -> redis-server
    -rwxr-xr-x. 1 root root 17437872  524 13:00 redis-server
    
  2. bin目录下创建一个redisconf

    mkdir redisconf
    

    例如:

    sudo mkdir redisconf
    

    注意:如果当前用户权限不够,一定要使用sudo

  3. 拷贝

    拷贝的时候,源码是自己安装的目录下的内容,注意路径

     sudo cp /opt/redis-stable/redis.conf redisconf
    

    例如

    [root@localhost bin]$ ll redisconf
    总用量 108
    -rw-r--r--. 1 root root 110449  524 13:24 redis.conf
    
  4. 修改redis.conf文件

    sudo vim redis.conf
    

    daemonize no改为 daemonize yes

    在这里插入图片描述

    设置密码requirepass 123456,可以使用搜索,在普通模式下输入/requirepass

    在这里插入图片描述

  5. 启动服务

    redis-server redisconf/redis.conf
    

    后面的路径是刚才配置的文件/usr/local/bin/redisconf/

    报错:

    [root@localhost bin]$ redis-server redisconf/redis.conf
    42441:C 24 May 2025 13:59:04.146 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    

    这个Redis的警告信息,提示内存过量提交(memory overcommit)必须启用,否则在低内存情况下后台保存或复制可能会失败。

    首先,我要理解这个警告的原因。Redis在持久化数据到磁盘时(比如执行BGSAVE或BGREWRITEAOF),会fork一个子进程。子进程需要与父进程共享相同的内存空间,这依赖于操作系统的写时复制(Copy-On-Write)机制。如果系统的内存过量提交设置被禁用(vm.overcommit_memory=0),当系统内存不足时,fork可能会失败,导致Redis无法完成持久化操作。

    所以,用户需要将vm.overcommit_memory设置为1,以允许过量提交。解决方法包括临时设置和永久设置两种。临时设置通过sysctl命令立即生效,但重启后会失效;永久设置需要修改/etc/sysctl.conf文件,并应用更改。

    接下来,我需要检查用户可能的需求。他们可能希望立即解决问题,所以临时命令是必要的。同时,为了长期稳定,修改配置文件也是关键。此外,用户可能需要验证设置是否生效,所以提供检查命令也很重要。

    还要考虑用户的操作系统类型,不同的系统可能sysctl的路径或命令稍有不同,但大多数Linux发行版处理方式相似。另外,用户可能需要知道如何重新加载sysctl配置而不重启,这可以通过sysctl -p来实现。

    最后,需要提醒用户如果修改配置文件后不重启,可能需要手动应用设置,或者确认是否需要重启Redis服务。不过通常修改sysctl.conf后执行sysctl -p就足够了,不需要重启整个系统。

    这里给出两种解决这个报错的方案:

    1.临时生效(重启后失效)

    sudo sysctl vm.overcommit_memory=1
    

    2.永久生效

    编辑配置文件

    sudo vim /etc/sysctl.conf
    

    添加以下行

    vm.overcommit_memory = 1
    

    应用配置(无需重启系统)

    sudo sysctl -p
    

    验证可以使用sysctl vm.overcommit_memory,输出是vm.overcommit_memory = 1

    最后使用redis-server redisconf/redis.conf就可以启动服务了

    可以验证下:

    [root@localhost bin]$ redis-server redisconf/redis.conf
    [root@localhost bin]$ redis-cli -p 6379
    127.0.0.1:6379> auth 123456
    OK
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379>
    

5.设置开机自启

进入配置文件

vi /etc/systemd/system/redis.service

配置以下内容:

[Unit]
Description=redis-server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redisconf/redis.conf
PrivateTmp=true[Install]
WantedBy=multi-user.target

注意/usr/local/bin/redisconf/redis.conf,更改成自己的目录

重载服务

systemctl daemon-reload

开启服务

systemctl start redis.service 

查看服务状态

systemctl status redis.service

以下是状态开启成功的示例:

在这里插入图片描述

拓展

systemctl start redis.service 	#启动redis服务
systemctl stop redis.service	#停止redis服务
systemctl restart redis.service #重新启动服务
systemctl status redis.service  #查看服务当前状态
systemctl enable redis.service  #设置开机自启动
systemctl disable redis.service #停止开机自启动

如果在开启redis服务的时候有报错,可以检查下:

  1. redis.conf的配置内容
  2. redis.service的路径配置问题,
  3. 6379端口问题

博主在开启redis服务的时候,出现了一个6379的端口问题,这个端口是已经被占用开启了,可以使用sudo ss -tulnp | grep 6379,查看指定端口

[lh@localhost bin]$ sudo ss -tulnp | grep 6379
tcp   LISTEN 0      511        127.0.0.1:6379       0.0.0.0:*    users:(("redis-server",pid=42442,fd=8))                
tcp   LISTEN 0      511            [::1]:6379          [::]:*    users:(("redis-server",pid=42442,fd=9)) 

直接使用sudo kill -9 42442,关闭这个端口号就行,使用sudo killall redis-server也是可以做到

在项目部署时,是需要将redis服务设置为开机自启的,

systemctl enable redis.service  #设置开机自启动
systemctl disable redis.service #停止开机自启动

注意:如果使用的账户没有权限,那么就需要使用sudo,当然是管理员账户的话,就不用

👑Linux 自启服务

开机自启和关闭命令

# 禁用服务
sudo systemctl disable <服务名># 启用服务
sudo systemctl enable <服务名>

也可以使用

# 禁用服务
sudo chkconfig <服务名> off# 启用服务
sudo chkconfig <服务名> on

查看是否自启服务

sudo systemctl is-enabled redis.service

查看已开启的所有服务

systemctl list-unit-files --type=service --state=enabled

相关文章:

  • VLLM推理可以分配不同显存限制给两张卡吗?
  • AI+RWA探索 AI无限可能与区块链RWA结合才具有爆长的空间 —ATRNX.AI全智能量化决策Agent
  • 从法律视角看债务管理:湖北理元理律师事务所的实践探索
  • Android 16系统源码_自由窗口(一)触发自由窗口模式
  • ​​Java UDP套接字编程:高效实时通信的实战应用与核心类解析​
  • 《关于浔川社团退出DevPress社区及内容撤回的声明》
  • SQL每日一练(3)
  • QML元素 - LevelAdjust
  • Beetle 树莓派RP2350 - 随身气压计
  • Spring Boot中如何对密码等敏感信息进行脱敏处理
  • PCB设计教程【入门篇】——PCB设计基础-PCB构成与组成
  • 国际前沿知识系列五:时间序列建模方法在头部撞击运动学测量数据降噪中的应用
  • linux 内存碎片分析
  • 2025年电工杯数学建模B题【垃圾运输】原创论文分享
  • python第三方库安装错位
  • 机器学习第二十六讲:官方示例 → 跟着菜谱学做经典菜肴
  • Vue中的事件绑定【3】
  • 天地图实景三维数据分享(江苏)
  • 同为科技 智能PDU产品选型介绍 EN10/I801CI
  • 【IEEE 2025】低光增强KANT(使用KAN代替MLP)----论文详解与代码解析
  • 一站式做网站开发/网络推广运营是做什么
  • 中秋网页设计素材网站/市场调研的四个步骤
  • 机械行业网站建设方案/图片识别搜索引擎
  • 程序员 修电脑 做网站/系统优化工具
  • 企业公司网站模板/免费服务器
  • 做网站 挣广告联盟的佣金/搜索引擎优化自然排名的优点