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
参数指定目录树的深度为 1tree -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.conf
到redis
的安装目录
-
进入
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 5月 24 13:00 redis-benchmark lrwxrwxrwx. 1 root root 12 5月 24 13:00 redis-check-aof -> redis-server lrwxrwxrwx. 1 root root 12 5月 24 13:00 redis-check-rdb -> redis-server -rwxr-xr-x. 1 root root 7267224 5月 24 13:00 redis-cli lrwxrwxrwx. 1 root root 12 5月 24 13:00 redis-sentinel -> redis-server -rwxr-xr-x. 1 root root 17437872 5月 24 13:00 redis-server
-
在
bin
目录下创建一个redisconf
mkdir redisconf
例如:
sudo mkdir redisconf
注意:如果当前用户权限不够,一定要使用
sudo
-
拷贝
拷贝的时候,源码是自己安装的目录下的内容,注意路径
sudo cp /opt/redis-stable/redis.conf redisconf
例如
[root@localhost bin]$ ll redisconf 总用量 108 -rw-r--r--. 1 root root 110449 5月 24 13:24 redis.conf
-
修改
redis.conf
文件sudo vim redis.conf
将
daemonize no
改为daemonize yes
设置密码
requirepass 123456
,可以使用搜索,在普通模式下输入/requirepass
-
启动服务
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
服务的时候有报错,可以检查下:
redis.conf
的配置内容redis.service
的路径配置问题,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
相关文章:

Linux目录介绍+Redis部署(小白篇)
目录 👑Linux基础✨【目录】 👑Redis 安装1.下载压缩包2.解压3.安装编译环境4.安装到本地5.设置开机自启 👑Linux 自启服务 👑Linux基础 虽然在大二的时候学过Linux,但是很多基础知识都忘了,想再次从基础捡…...
软件开发MVC三层架构杂谈
在当今的软件开发领域,MVC(Model-View-Controller)架构已成为构建复杂系统时不可或缺的设计模式。它通过将应用程序划分为模型(Model)、视图(View)和控制器(Controller)三…...

Python 基础语法速查手册:从入门到精通
Python 作为最受欢迎的编程语言之一,以其简洁易读的语法和强大的功能吸引了大量开发者。本文全面汇总 Python 基础语法知识,帮助初学者快速掌握核心概念,并为后续深入学习打下坚实基础。 1. Python 基础语法结构 1.1 代码结构与缩进规则 Py…...
Spring框架--IOC技术
一、Spring框架的介绍 1、Spring框架的概述 Spring 是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003年兴起的一个轻量级的Java开发框架,由 Rod Jo…...
前端vue2-完全前端生成pdf->pdf-lib,html2canvas+jspdf,原生打印,三种方式(打印带有echarts图的pdf)
pdf-lib:优点是可以控制输出内容,缺点是麻烦 html2canvas:优点是直接把html页面转成图片之后插入pdf很方便,不用过多的代码,缺点是不好控制图片大小,容易被戒断,可以把想打印的内容藏在页面外面…...

论文阅读笔记——Emerging Properties in Unified Multimodal Pretraining
BAGEL 论文 商业闭源系统与学术/开源模型的差距很大,BAGEL 旨在通过开源统一架构大规模交错数据主要解决: 架构割裂:理解/生成分属两条网络,信息被压缩在少量条件 token 中,长上下文推理受限。数据贫乏:主…...

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

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

Java中的String的常用方法用法总结
1.1 String (1)声明 (2)字符串常量 存储字符串数据的容器:private final char value[] 字符串常量都存储在字符串常量池(StringTable)中 字符串常量池不允许存放两个相同的字符串常量 ÿ…...

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

基于微信小程序的智能问卷调查系统设计与实现(源码+定制+解答)基于微信生态的问卷管理与数据分析系统设计
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...

React 如何封装一个可复用的 Ant Design 组件
文章目录 前言一、为什么需要封装组件?二、 仿antd组件的Button按钮三、封装一个可复用的表格组件 (实战)1. 明确需求2. 设计组件 API3. 实现组件代码4. 使用组件 三、封装组件的最佳实践四、进阶优化 总结 前言 作为一名前端开发工程师,在日常项目中&a…...
CloudWeGo-Netpoll:高性能NIO网络库浅析
一、Netpoll 简介 Netpoll 是由字节跳动开发的高性能 NIO(Non-blocking I/O)网络库,专注于 RPC 场景。在 RPC 场景中,通常有较重的处理逻辑,无法串行处理 I/O。而 Go 的标准库 net 设计了 BIO(Blocking I/…...
Mac的显卡架构种类
目录 一、Intel架构时期的Mac显卡(2006 年至 2020 年) 1. Intel 集成显卡(iGPU) 2. 独立显卡(dGPU)—— AMD 和 NVIDIA (1)AMD Radeon(主流独显选择) &a…...
HTTP基本概述
HTTP基本概述 报文格式 HTTP报文分为 请求报文 和 响应报文 一、请求报文 请求行(Request Line)请求头部(Request Headers)(空行)请求体(Request Body) ← 可选,如 P…...

Canvas SVG BpmnJS编辑器中Canvas与SVG职能详解
Canvas详解与常见API 一、Canvas基础 核心特性 • 像素级绘图:Canvas是基于位图的绘图技术,通过JavaScript操作像素实现图形渲染,适合动态、高性能场景(如游戏、数据可视化)。 • 即时模式:每次绘制需手动…...

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

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

HarmonyOS 应用开发,如何引入 Golang 编译的第三方 SO 库
本指南基于笔者临时修复的 ohos_golang_go 项目fork,解决HO 应用导入 cgo编译产物时的 crash 问题。 1. 下载 ohos_golang_go git clone https://gitcode.com/deslord/ohos_golang_go.git📌 该仓库为笔者临时修复版本,修复了 CGO 编译模式下…...
Axure元件动作六:设置图片
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 案例视频: Axure元件动作:设置图片 课程主题:设置图片 主要内容:图片悬停、鼠标按下时、选中...

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

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

白皮精读:2024年国家数据基础设施建设指引【附全文阅读】
《国家数据基础设施建设指引》提出建设覆盖数据采集至安全全链条的新型基础设施,目标到 2029 年形成横向联通、纵向贯通的格局,聚焦数据可信流通、算力协同、高速传输、安全保障四大功能,明确技术架构与重点方向,强调政府与市场协同,分阶段推进试点及规模化部署,为数字中…...
【信息系统项目管理师】第21章:项目管理科学基础 - 23个经典题目及详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1~2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21题】…...
Mocha-Webpack 使用教程
Mocha-Webpack 使用教程 mocha-webpackmocha test runner with integrated webpack precompiler项目地址:https://gitcode.com/gh_mirrors/mo/mocha-webpack 项目介绍 Mocha-Webpack 是一个结合了 Mocha 和 Webpack 的测试工具,它允许开发者在使用 Webpack 打包的…...
AI硬件革命:OpenAI“伴侣设备”——从概念到亿级市场的生态重构
2025年5月23日,OpenAI宣布以65亿美元全股收购苹果前首席设计师Jony Ive创立的AI硬件公司io,并计划于2026年底前推出首款“AI伴侣设备”,目标出货量达1亿台。这一消息迅速成为全球AI领域的热点,标志着AI技术从云端大模型向端侧硬件…...

穿屏技巧: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、中部省份 四、总结 前言 在当今数字化时代,地理信息数据的分析与可视化对于众…...
【C/C++】线程状态以及转换
文章目录 线程状态以及转换1 基本状态1.1 新建(New)1.2 就绪(Ready / Runnable)1.3 运行中(Running)1.4 阻塞/等待(Blocked / Waiting / Sleeping)1.5 挂起(Suspended&am…...
从零开始:Python语言进阶之异常处理
一、认识异常:程序运行中的“意外事件” 在编写Python程序时,即使代码语法完全正确,运行过程中也可能遭遇各种意外情况。这些意外被称为异常,它们会打断程序的正常执行流程。例如,当我们尝试打开一个不存在的文件、用0…...