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

基于CentOS Stream 9平台 安装/卸载 Redis7.0.15


已更正systemctl管理Redis服务问题

1. 官方下载地址 https://redis.io/downloads/#redis-downloads


1.1 下载或上传到/opt/coisini目录下:

mkdir /opt/coisini
cd /opt/coisini
wget https://download.redis.io/releases/redis-7.0.15.tar.gz

2. 解压

tar -zxvf redis-7.0.15.tar.gz 

3. 创建软连接

或者直接重命名 mv redis-7.0.15 redis

ln -s redis-7.0.15 redis

4. 进入redis目录

cd redis

5. 准备编译

安装 systemd-devel 和其他编译所需的依赖

yum -y install centos-release-scl devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash systemd-devel make gcc

配置并编译 Redis

make BUILD_WITH_SYSTEMD=yes

等待一会~


6. 安装编译:

make install 

1

6.1如果报以下错误:

解决办法:

make MALLOC=libc
1


7. redis的bin目录到$PATH

vi ~/.bash_profilePATH=$PATH:$HOME/.local/bin:/opt/coisini/redis/bin:$HOME/bin

esc :wq保存退出


8. 编辑配置文件

vi /opt/coisini/redis/redis.conf
(按Esc退出编辑模式下: /protected-mode 即可搜索)# 关闭保护模式
protected-mode no
# 守护进程模式开启
daemonize yes
# 绑定IP按需修改,bind指定网段远程访问redis,注释就没有限制了。
#bind 127.0.0.1 
# 端口(单机默认,集群按需修改)
port 6379# (搜/requirepass foobared)设置Redis密码
requirepass 123456# systemd接管服务
supervised systemd
# redis日志输出
logfile /var/log/redis/redis.log

注:云服务器一定要设置密码,避免服务器被当成矿机


8.1 创建redis日志目录并赋权

useradd -r -s /bin/false redis
mkdir -p /var/log/redis
chown redis:redis /var/log/redis
chmod 755 /var/log/redis
touch /var/log/redis/redis.log
chown redis:redis /var/log/redis/redis.log
chown -R redis:redis /opt/coisini/redis-7.0.15
chmod -R 770 /opt/coisini/redis-7.0.15

9. redis启动:进入src目录

cd /opt/coisini/redis/src./redis-server /opt/coisini/redis/redis.conf &  

redis


10. 开放端口

sudo firewall-cmd --permanent --add-port=6379/tcpfirewall-cmd --reload

11. Redis连接工具测试连接

redis


关闭命令:/opt/coisini/redis/src/redis-cli -a 123456 -p 6379 shutdown
关闭

12. 开机自启配置

在redis的utils目录下有相关脚本,我们改下用就行


12.1 etc目录下创建redis目录

mkdir /etc/redis

12.2 将redis配置文件拷贝一份到etc/redis目录下

cp /opt/coisini/redis/redis.conf /etc/redis/6379.conf

12.3 文件赋权,避免文件执行无权限

创建用户和组 redis

useradd -r -s /bin/false redis
chown redis:redis /etc/redis/6379.conf
chmod -R 755 /etc/redis/6379.conf
chown -R redis:redis /opt/coisini/redis
chmod -R 755 /opt/coisini/redis

12.4 编辑文件

vi /etc/systemd/system/redis.service

添加内容

[Unit]
Description=Redis data structure server
Documentation=https://redis.io/documentation
Wants=network-online.target
After=network-online.target[Service]
ExecStart=/opt/coisini/redis/src/redis-server /etc/redis/6379.conf
ExecStop=/opt/coisini/redis/src/redis-cli -a 123456 -p 6379 shutdown
# 用于服务进程的用户和用户组,建议设置为非 root 用户
User=redis
Group=redis
# 启动 Redis 的最大文件描述符数量限制
LimitNOFILE=10032
# 禁止服务进程提升权限
NoNewPrivileges=yes
# 私有临时目录
PrivateTmp=yes
# 服务类型为通知
Type=notify
# 启动超时设置
TimeoutStartSec=300
# 停止超时设置
TimeoutStopSec=300
# 文件权限掩码
UMask=0077
# 工作目录设置
WorkingDirectory=/opt/coisini/redis[Install]
WantedBy=multi-user.target

12.5 重新加载systemd配置

systemctl daemon-reload

12.6 启动Redis服务命令

systemctl start redis

12.7 查看状态

systemctl status redis

Redis


12.8 设置开机自启

systemctl enable redis

reboot重启测试了启动服务没有问题




13 卸载Redis

涉及 rm -rf 命令,请谨慎操作~

13.1 停止服务:

systemctl stop redis
systemctl status redis

status'


13.2 删除 Redis 可执行文件和目录

rm -rf /opt/coisini/redis-7.0.15
rm -rf /opt/coisini/redis
rm -rf /var/lib/redis
rm -rf /usr/local/bin/redis-*

13.3 移除 Redis 配置文件

rm -rf /etc/redis

13.4 删除 Redis 日志文件

rm -rf /var/log/redis

13.5 删除 Redis 用户和组

userdel redis
groupdel redis

13.6 移除 Redis 服务文件

rm -rf /etc/systemd/system/redis.service

重新加载 systemd 配置:

systemctl daemon-reload

13.7 检查是否还有 Redis 相关的残留

find / -name '*redis*' -print

显示 command not found 或类似提示,则Redis 已成功卸载(若是别的文件的可忽略,也许是另外一个软件的文件)。


13.8 卸载 Redis 依赖项(可选)

yum remove -y tcl
yum autoremove

13.9 清理系统缓存

yum clean all

END,搞定!

相关文章:

  • 增强大型语言模型(LLM)可访问性:深入探究在单块AMD GPU上通过QLoRA微调Llama 2的过程
  • 学习记录:VS2019+OpenCV3.4.1实现SURF库函数的调用
  • 手机照片免费数据恢复软件EasyRecovery2024免费版下载
  • C 语言连接MySQL 数据库
  • 【面试干货】String、StringBuilder、StringBuffer 的区别
  • 双指针【1】两数之和基础版 归并排序
  • 【LC刷题】DAY09:232 225 20 1047
  • 考研计组chap3存储系统
  • Python爬虫实现“自动重试”机制的方法(2)
  • uniapp 展示地图,并获取当前位置信息(精确位置)
  • 《web应用技术》第十一次作业
  • Postman接口测试工具详解
  • 【逻辑回归】和【线性回归】的区别和联系-九五小庞
  • 【git使用四】git分支理解与操作(详解)
  • 快手爬票概述
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • canvas 绘制双线技巧
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • ES6核心特性
  • java概述
  • MySQL几个简单SQL的优化
  • Promise初体验
  • python 学习笔记 - Queue Pipes,进程间通讯
  • vuex 笔记整理
  • webpack入门学习手记(二)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 规范化安全开发 KOA 手脚架
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 写代码的正确姿势
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 最简单的无缝轮播
  • k8s使用glusterfs实现动态持久化存储
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​TypeScript都不会用,也敢说会前端?
  • ### RabbitMQ五种工作模式:
  • #define、const、typedef的差别
  • #WEB前端(HTML属性)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • $(function(){})与(function($){....})(jQuery)的区别
  • (C语言)共用体union的用法举例
  • (MATLAB)第五章-矩阵运算
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (力扣)1314.矩阵区域和
  • (未解决)macOS matplotlib 中文是方框
  • (转)Linux整合apache和tomcat构建Web服务器
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net Application的目录
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net的socket示例