Redis——急速安装并设置自启(CentOS)

现状
对于开发人员来说,部署服务器环境并不是一个高频操作。所以就导致绝大部分开发人员不会花太多时间去学习记忆,而是直接百度(有一些同学可能连链接都懒得收藏)。所以到了部署环境的时候就头疼,甚至是抗拒。除了每次都要折腾个把小时(甚至更久)以外,还会觉得:我是开发不是运维,为什么要搞这些?有这种想法无可厚非,但公司没有运维岗位的时候,是不是必须你来做?所以抱怨是没用的,提升效率才是解决问题的根本。这篇文章可以让你脱离苦海,10分钟搞定redis安装+服务自启,仔细看。

分析
现有两种比较实在的解决方案:

其一是通过docker安装redis,把配置文件通过资料卷和本地文件挂钩。

其二就是通过shell脚本来帮助我们完成这些机械化的操作。

第一种对新手很不友好,你需要查阅更多的资料,试更多的错,如果你急于完成工作任务,反而会给你造成更多困扰。为了能真正帮到大家,本文说一下第二种,直接进入正题。

编写脚本
首先,进入服务器任意目录执行以下命令:

vi redis-install.sh
1
进入vi编辑器,点击i开启编辑模式后,把下面代码粘贴进去(版本、安装目录根据自己需要更改):

1 #!/bin/bash

2

3 version="6.2.2"

4

5 echo "==========检查并安装gcc=========="
6 yum install -y gcc

7

8 echo "==========切换目录=========="
9 cd ~

10

11 echo "==========下载压缩包=========="
12 wget https://download.redis.io/releases/redis-${version}.tar.gz

13

14 echo "==========解压到当前目录=========="
15 tar xzf redis-${version}.tar.gz

16

17 echo "==========删除无用文件=========="
18 rm redis-${version}.tar.gz

19

20 echo "==========切换目录=========="
21 cd redis-${version}

22

23 echo "==========开始编译=========="
24 make

25

26 echo "==========开始安装=========="
27 make install PREFIX=/usr/local/redis

28

29 echo "==========配置文件=========="
30cp ~/redis-6.2.2/redis.conf /usr/local/redis/bin/

31

32 echo "==========安装完成=========="

然后:按下esc——输入冒号——输入wq——回车

安装和配置
shell脚本已经写好了,通过sh命令执行:

1 sh redis-install.sh


执行完毕时就完成安装操作了。

然后切换到安装目录:

1 cd /usr/local/redis/bin

此目录下有个redis.conf的文件,打开并修改下面这几项(根据自己需求来):

1 //是否允许后台启动
2 daemonize no 改为 yes

3

4 //设置密码
5 requirepass your password

6

7 //允许的最大物理存储空间(示例为1gb)
8 maxmemory 1073741824

9

10 //淘汰规则,规定空间不够用时如何淘汰已有键
11 maxmemory-policy volatile-ttl

服务自启
切换到任意目录,执行以下命令新建服务:

1 vi /etc/systemd/system/redis.service

和刚才的vi一样,按下i进入编辑模式,然后拷贝下面代码:

1 [Unit]
2 Description=redis
3 After=network.target

5 [Service]
6 Type=forking
7 ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
8 PrivateTmp=true

9

10 [Install]
11 WantedBy=multi-user.target

按下esc——输入冒号——输入wq——点击回车。

然后重载本地服务:

1 systemctl daemon-reload

启动刚才手写的服务:

1 systemctl start redis.service

设置开机启动:

1 systemctl enable redis.service

如果没有任何反馈,代表启动成功,可以用客户端软件链接测试了。

最后
这篇文章写的十分照顾小白(甚至连vi的基本操作都讲了),没有深入去讲,基本任谁c+v就能用,因为这一篇的内容就是用来提升工作效率的。
 

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

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

相关文章

k8s 安装istio (一)

前置条件 已经完成 K8S安装过程十:Kubernetes CNI插件与CoreDNS服务部署 部署 istio 服务网格与 Ingress 服务用到了 helm 与 kubectl 这两个命令行工具,这个命令行工具依赖 ~/.kube/config 这个配置文件,目前只在 kubernetes master 节点中…

web前端开发中的响应式布局设计是什么意思?

响应式布局是指网页设计和开发中的一种技术方法,旨在使网页能够在不同大小的屏幕和设备上都能良好地显示和交互。这种方法使得网页可以自动适应不同的屏幕尺寸,包括桌面电脑、平板电脑和手机等。 在Web前端开发中,响应式布局通常使用CSS&…

随记-Kibana Dev Tools,ES 增删改查 索引,Document

索引 创建索引 创建索引 PUT index_test创建索引 并 修改分片信息 # 创建索引 并 修改分片信息 PUT index_test2 { # 必须换行, PUT XXX 必须独占一行,类似的 其他请求也需要独占一行 "settings": {"number_of_shards": 1, # 主分片"…

bug复刻,解决方案---在改变div层级关系时,导致传参失败

问题描述: 在优化页面时,为了实现网页顶部遮挡效果(内容滚动,顶部导航栏不随着一起滚动,并且覆盖),做法是将内容都放在一个div里面,为这个新的div设置样式,margin-top w…

c++ qt--事件过滤(第七部分)

c qt–事件过滤(第七部分) 一.为什么要用事件过滤 上一篇博客中我们用到了事件来进行一些更加细致的操作,如监控鼠标的按下与抬起,但是我们发现如果有很多的组件那每个组件都要创建一个类,这样就显得很麻烦&#xff…

GO语言:Worker Pools线程池、Select语句、Metex互斥锁详细示例教程

目录标题 一、Buffered Channels and Worker Pools1. Goroutine and Channel Example 线程和通道示例2. Deadlock 死锁3. Closing buffered channels 关闭通道4. Length vs Capacity 长度和容量5. WaitGroup6. Worker Pool Implementation 线程池 二、Select1. Example2. Defau…

IO进程线程,文件与目录,实现linux任意目录下ls -la

注意文件的名字、路径是如何输入的。 函数opendir打开目录,struct dirent,struct stat这些结构体的含义。 readdir()函数是一个用于读取目录内容的系统调用或库函数,在类Unix操作系统中(如Linux)广泛使用。它用于遍历…

python爬虫10:selenium库

python爬虫10:selenium库 前言 ​ python实现网络爬虫非常简单,只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点,方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论,并不会对网站产…

leetcode算法题--复杂链表的复制

原题链接:https://leetcode.cn/problems/fu-za-lian-biao-de-fu-zhi-lcof/description/?envTypestudy-plan-v2&envIdcoding-interviews 感觉一开始想到的办法还是比较笨 /*** Definition for a Node.* type Node struct {* Val int* Next *Node* …

C语言练习题Day1

从今天开始分享C语言的练习题,每天都分享,差不多持续16天,看完对C语言的理解可能更进一步,让我们开始今天的分享吧! 题目一 执行下面的代码,输出结果是() int x5,y7; void swap()…

Qt --- 对象树机制、析构顺序导致崩溃

{QWidget widget;QPushButton buttonQuit("Quit",&widget); } 作为父组件的widget,子组件buttonQuit都是QObject的子类;上述代码运行没有问题。 代码析构时,因为C的要求,局部对象的析构时按照实例化顺序逆向的顺序…

「MySQL-01」MySQL基础

目录 一、数据库概念 1. 什么是数据库 2. 为什么要有数据库? 3. 数据库将数据存在哪里? 二、知名数据库介绍 1.知名数据库介绍 2.为什么要学习MySQL 三、MySQL的基本使用 0. 安装MySQL 1. 数据库客户端链接服务端 2. Windows下的MySQL服务端管理 3. 数据…

昌硕科技、世硕电子同步上线法大大电子合同

近日,世界500强企业和硕联合旗下上海昌硕科技有限公司(以下简称“昌硕科技”)、世硕电子(昆山)有限公司(以下简称“世硕电子”)的电子签项目正式上线。上线仪式在上海浦东和硕集团科研大楼举行&…

flowable源码解析之分析环境搭建

系列文章目录 第一章 源码分析环境搭建 第二章 流程引擎启动(一) 第三章 流程引擎启动(二) 第四章 流程引擎启动(三) 第五章 流程引擎启动(四) 第六章 流程部署 第七章 流程模型解析 第八章 流程的发起 第九章 数据存储机制 文章目录 系列文章目录一、Flowable源码分析…

使用fastjson2的@JSONField注解解决日期格式记录

最近在做一个三方对接&#xff0c;对方的日期格式数据要求时间日期格式: yyyyMMddHHmmss或者 yyyyMMdd&#xff0c;我一下想起了fastjson2工具包&#xff0c;所以很愉快的解决了此问题。 依赖jar如下&#xff1a; <dependency><groupId>com.alibaba.fastjson2</…

mysql 触发器格式,修改触发器,创建触发器,触发条件

1.查询所有触发器 show triggers; 2.创建触发器 #修改结束符 delimiter $$create trigger <自定义出发名> after insert on <所监听的表名> for each row begin#执行多条sql语句#拿到监听数据 关键字 new/old 即 新数据/旧数据update classify set cat_num cat…

每日一博 - 闲聊云原生和容器编排

文章目录 概念1. 云原生&#xff08;Cloud Native&#xff09;&#xff1a;2. 容器编排&#xff08;Container Orchestration&#xff09;&#xff1a; 小结 概念 云原生和容器编排是两个不同的概念&#xff0c;但它们之间有着密切的联系。下面将分别介绍这两个概念&#xff0…

day-02 套接字类型与协议设置、地址族和数据序列

一.套接字类型 1.面向连接的套接字&#xff08;SOCK_STREAM&#xff09; 特点&#xff1a; 传输过程中数据不会消失按顺序传输数据传输的数据不存在数据边界 2.面向消息的套接字&#xff08;SOC_DGRAM&#xff09; 特点&#xff1a; 强调快速传输而非传输顺序传输的数据可…

【C++】const成员 | 取地址运算符重载

Ⅰ. const成员 两种const 我们知道&#xff0c;用const修饰 能起到保护&#xff0c;使之不被修改的作用。 修饰指针的const有两种位置&#xff1a; 我们学过的this指针&#xff0c;就被后者所修饰&#xff0c;因此无法被修改。 const成员函数 ➡️为了保护函数里的成员&…

《Java极简设计模式》第05章:原型模式(Prototype)

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 源码地址&#xff1a;https://github.com/binghe001/java-simple-design-patterns/tree/master/j…