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

news2025/5/25 11:22:00

目录

    • 👑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-server
    INSTALL redis-benchmark
    INSTALL 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 基础语法速查手册:从入门到精通

Python 作为最受欢迎的编程语言之一&#xff0c;以其简洁易读的语法和强大的功能吸引了大量开发者。本文全面汇总 Python 基础语法知识&#xff0c;帮助初学者快速掌握核心概念&#xff0c;并为后续深入学习打下坚实基础。 1. Python 基础语法结构 1.1 代码结构与缩进规则 Py…

论文阅读笔记——Emerging Properties in Unified Multimodal Pretraining

BAGEL 论文 商业闭源系统与学术/开源模型的差距很大&#xff0c;BAGEL 旨在通过开源统一架构大规模交错数据主要解决&#xff1a; 架构割裂&#xff1a;理解/生成分属两条网络&#xff0c;信息被压缩在少量条件 token 中&#xff0c;长上下文推理受限。数据贫乏&#xff1a;主…

JAVA批量发送邮件(含excel内容)

EmailSenderHtmlV1 是读取配置文件《批量发送邮件.xlsx》&#xff0c;配置sheet获取 发件人邮箱 邮箱账号 口令&#xff0c;发送excel数据sheet获取收件人邮箱 抄送人邮箱 邮件标题 第N行开始(N>1,N0默认表头) 第M行结束(M>1,M0默认表头) 附件文件夹…

Linux(Ubuntu)新建文件权限继承问题

当你在一个工作目权限为777的文件下&#xff0c;新建一个文件的时候&#xff0c;就有可能发生&#xff0c;新建的这个文件&#xff0c;权限和其他文件&#xff0c;或者工作目录不一致的问题&#xff0c;我们不可能每次新建一个文件&#xff0c;就要 sudo chmod -R 777 /PATH 所…

Java中的String的常用方法用法总结

1.1 String &#xff08;1&#xff09;声明 &#xff08;2&#xff09;字符串常量 存储字符串数据的容器&#xff1a;private final char value[] 字符串常量都存储在字符串常量池&#xff08;StringTable&#xff09;中 字符串常量池不允许存放两个相同的字符串常量 &#xff…

QGIS如何打开 ARCGIS的mxd工程文件

“SLYR”是一款由著名开源组织“北路开源”开发的一套QGIS兼容和转换ARCGIS样式、工程、设置信息的插件&#xff01;其主要功能为&#xff1a; 最近项目需要&#xff0c;我使用了一些功能&#xff0c;发现其对中文环境及中文信息支持不太好&#xff0c;还有一些其它BUG&#xf…

基于微信小程序的智能问卷调查系统设计与实现(源码+定制+解答)基于微信生态的问卷管理与数据分析系统设计

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

React 如何封装一个可复用的 Ant Design 组件

文章目录 前言一、为什么需要封装组件&#xff1f;二、 仿antd组件的Button按钮三、封装一个可复用的表格组件 (实战)1. 明确需求2. 设计组件 API3. 实现组件代码4. 使用组件 三、封装组件的最佳实践四、进阶优化 总结 前言 作为一名前端开发工程师&#xff0c;在日常项目中&a…

Canvas SVG BpmnJS编辑器中Canvas与SVG职能详解

Canvas详解与常见API 一、Canvas基础 核心特性 • 像素级绘图&#xff1a;Canvas是基于位图的绘图技术&#xff0c;通过JavaScript操作像素实现图形渲染&#xff0c;适合动态、高性能场景&#xff08;如游戏、数据可视化&#xff09;。 • 即时模式&#xff1a;每次绘制需手动…

dify多实例部署,一台机器部署多个dify实例

dify多实例部署 目的 实现在一台机器上&#xff0c;部署多个dify的实例。比如一个部署1.2版本&#xff0c;一个部署1.3版本。废话没有&#xff0c;直接上干货。 前提 你的电脑已经部署了一个dify实例&#xff0c;并成功运行。比如已经部署成功0.15.3版本。 步骤如下&#…

ML 48.机器学习之临床生存树(rpartSurv)

简介机器学习中生存树&#xff08;Survival Tree&#xff09;的原理详解 生存树是结合决策树与生存分析的机器学习模型&#xff0c;主要用于处理带有时间-事件数据&#xff08;包含删失数据&#xff09;的预测问题。其核心目标是&#xff1a;通过树状结构对数据进行递归分割&am…

HarmonyOS 应用开发,如何引入 Golang 编译的第三方 SO 库

本指南基于笔者临时修复的 ohos_golang_go 项目fork&#xff0c;解决HO 应用导入 cgo编译产物时的 crash 问题。 1. 下载 ohos_golang_go git clone https://gitcode.com/deslord/ohos_golang_go.git&#x1f4cc; 该仓库为笔者临时修复版本&#xff0c;修复了 CGO 编译模式下…

一体化雷达波明渠流量计简介

一、技术定义与核心原理 一体化雷达波明渠流量计是基于微波技术的全自动流量监测设备&#xff0c;采用 24G K 波段平面雷达技术&#xff0c;通过非接触式测量方式实现对明渠、河道、排水管网等场景的水位、流速及流量监测。其核心原理是利用雷达发射高频电磁波&#xff0c;经水…

Pr -- 耳机没有Pr输出的声音

问题 很久没更新视频号了&#xff0c;想用pr剪辑一下&#xff0c;结果使用Pr打开后发现耳机没有Pr输出的声音 解决方法 在编辑--首选项-音频硬件中设置音频硬件的输出为当前耳机设备

白皮精读:2024年国家数据基础设施建设指引【附全文阅读】

《国家数据基础设施建设指引》提出建设覆盖数据采集至安全全链条的新型基础设施,目标到 2029 年形成横向联通、纵向贯通的格局,聚焦数据可信流通、算力协同、高速传输、安全保障四大功能,明确技术架构与重点方向,强调政府与市场协同,分阶段推进试点及规模化部署,为数字中…

穿屏技巧:Mac-Windows一套鼠标键盘控制多台设备 (sharemouse6.0-Keygen)| KM-401A

文章目录 引言I sharemouse6.0介绍功能介绍关闭自动更新安装包II 安装系统对应的sharemouse软件Windowsmac版本III 知识扩展:SCP、FTP、SSH文件传输SCP配置SSH密钥免密登录FTP(File Transfer Protocal,文件传输协议)引言 基于USB进行同步键盘和鼠标事件,更流畅。 基于局域…

【写在创作纪念日】基于SpringBoot和PostGIS的各省东西南北四至极点区县可视化

目录 前言 一、空间检索简介 1、空间表结构 2、四至空间检索 二、前后端实现 1、后端实现 2、前端集成 三、成果展示 1、东部省份 2、西部省份 3、南部省份 4、北部省份 5、中部省份 四、总结 前言 在当今数字化时代&#xff0c;地理信息数据的分析与可视化对于众…

如何制作可以本地联网搜索的MCP,并让本地Qwen3大模型调用搜索回答用户问题?

环境: SearXNG Qwen3-32B-FP8 vllm 0.8.5 问题描述: 如何制作可以本地联网搜索的MCP,并让本地Qwen3大模型调用搜索回答用户问题? 解决方案: 一、安装searxng 1.按需新建模型相关文件夹 mkdir MCP chmod 777 /mnt/program/MCP2.配置conda源 nano ~/.condarc nano…

服务器硬盘虚拟卷的处理

目前的情况是需要删除逻辑卷&#xff0c;然后再重新来弄一遍。 数据已经备份好了&#xff0c;所以不用担心数据会丢失。 查看服务器的具体情况 使用 vgdisplay 操作查看服务器的卷组情况&#xff1a; --- Volume group ---VG Name vg01System IDFormat …

一个国债交易策略思路

该国债交易策略的核心在于通过分析历史价格数据来识别市场趋势&#xff0c;并在趋势确认时进行开仓操作。策略的设计思路结合了价格波动范围的计算和市场波动性的评估&#xff0c;旨在捕捉市场的短期趋势并控制风险。 首先&#xff0c;策略通过对过去5根K线的最高价和最低价进行…