Ubuntu系统中Redis的安装步骤及服务配置

目录

内容概括

系统环境

安装方式

1、apt包管理器安装

(1)安装redis服务

(2)安装客户端(进入命令行操作使用,包含redis-cli)

(3)安装检验

(4)其他操作

2、解压缩编译安装步骤

(1)安装依赖

(3)编译Redis

(4)测试编译文件(可选)

(5)安装Redis

(6)启动Redis

服务启动可能遇到的问题

(a)Redis推荐配置检测问题

(b)端口占用问题

(7)安装检验

(8)添加Redis开机自启服务


内容概括

        本文主要记录了Ubuntu服务器中Redis服务的安装使用,包括apt安装和解压缩编译安装两种方式,并对安装过程中可能出现的问题、解决方案进行说明,以及在手动安装时,服务器如何添加自定义服务的问题。

系统环境

        ubuntu-22.04.4-live-server

安装方式

        在安装方式选择上,如果对于Redis的版本没有明确要求,可以直接通过apt包管理器命令安装,简单快捷,也比较省事。

        如果对于Redis的版本有明确要求,由于apt软件源中可用的版本相对较少,这时候可能就需要手动下载对应的版本压缩包,通过解压缩编译安装,然后手动配置服务,相对来说,这种方式会复杂一点点。

1、apt包管理器安装

更新apt软件包索引:sudo apt update(可选)

(1)安装redis服务

sudo apt install redis-server

(2)安装客户端(进入命令行操作使用,包含redis-cli)

sudo apt install redis tools

(3)安装检验

执行 redis-cli 进入redis命令行,在操作界面输入ping 返回 PONG 说明安装正确,也可以存取键值测试:

(4)其他操作

查看版本:redis-cli -v

查看Redis进程信息:ps -ef | grep redis

此方式版本由apt默认,配置文件默认位于/etc/redis/redis.conf,

如果需要修改Redis配置,可以调整配置文件参数,或者直接替换默认配置文件。

常见配置参数:

bind 127.0.0.1:指定 Redis 绑定的 IP 地址,默认绑定在本地回环地址。

protected-mode yes:保护模式,建议保持开启。

port 6379:指定 Redis 侦听的端口。

daemonize no:是否以后台守护进程方式运行,生产环境中建议设置为 `yes`。

logfile "":指定日志文件路径,如果不指定,则日志输出到标准输出。

dir ./:指定工作目录,用于存放数据库文件。

命令查看当前apt软件源中的可用版本(执行任意一个即可):

 apt info redis-server

apt show -a redis-server

apt-cache madison redis-server

卸载服务:

1)停止redis服务:sudo systemctl stop redis-server

2)卸载redis-server包:sudo apt-get remove --purge redis-server

3)清理残留包:sudo apt-get remove --purge redis-server

4)清除redis数据目录(可选):sudo rm -r /var/lib/redis

5)更新apt缓存(可选):sudo apt update

2、解压缩编译安装步骤

Redis不同版本安装包的下载地址网上很多,这里提供一个华为云的地址,没有下载地址的话可以先用着,基本上各个版本都有,找到自己需要的版本下载即可:Index of redis-localicon-default.png?t=O83Ahttps://mirrors.huaweicloud.com/redis/

(1)安装依赖

首先,确保你的系统已经安装了必要的编译工具和依赖项。

命令行终端运行以下命令安装:

sudo apt update

sudo apt install build-essential tcl

(2)解压缩 Redis 包

进入到你下载的自定义版本软件包目录,可以在自己建一个项目路径,专门用于Redis服务。

在这里,如果你是使用远程连接工具操作服务器,且又是在根目录下创建的Redis文件目录,那么上传文件时,可能会遇到没有写入权限的问题,导致上传失败:

解决方案有两种:

1)先将文件上传到普通用户目录,然后使用sudo cp “普通用户文件地址” “根目录文件位置” 命令将压缩包文件拷贝到对应位置,或者mv移动也行。

2)更改根目录下创建的redis服务目录的权限,使得其他用户也具有读、写、执行权限,

在文件夹所在目录位置执行 sudo chmod 777 redis/ 即可。

ok,接下来继续安装步骤,

这里以 `redis-7.2.4.tar.gz` 为例,上传到自己的目录后,解压缩该文件:

解压:sudo tar xzf redis-7.2.4.tar.gz

进入解压后的文件目录:cd redis-7.2.4

解压之后可以看到文件夹内的内容:

(3)编译Redis

在解压缩后的目录中,运行命令编译 Redis:

sudo make

编译会跑一小会儿,过程中不需要额外操作,等待跑完回到命令行输入行就行。

编译完如下:

(4)测试编译文件(可选)

为了确保编译后的 Redis 没有问题,可以运行测试套件:

sudo make test

测试也会跑一小会儿,喝口水吃颗糖做几个俯卧撑啥的,耐心等待一下即可,如果所有测试都通过,说明编译成功,完成后如下:

(5)安装Redis

编译完成后,即可将 Redis 安装到系统中:

sudo make install

(6)启动Redis

加压缩编译安装的Redis服务,配置文件redis.conf就在解压缩目录下,同样可以根据实际需求,进行编辑调整参数,或者替换。

手动启动:sudo redis-server redis.conf(不带配置文件参数的话,默认是解压目录下的配置文件,解压目录下执行,不在解压目录下的话,需要加上配置文件的绝对路径)

服务启动可能遇到的问题
(a)Redis推荐配置检测问题

报错信息如下:

查了下意思是,Redis检测到系统的内存过度提交(memory overcommit)设置不符合其推荐配置,巴拉巴拉啥的。

解决方式:

默认配置关闭了守护进程方式启动,使用时一般Redis都是以守护进程方式启动。

修改配置文件参数,使用守护进程方式启动即可(常见参数解析方式1有简单介绍)

(b)端口占用问题

解决方式:

1)更改配置文件中的端口号配置。

2)查看当前进程端口占用情况,找到占用端口的进程,结束其他占用端口的进程(sudo kill -9 <进程号>),之后重新启动服务即可。

问题解决之后即可正常启动Redis服务

(7)安装检验

启动服务之后检测是否安装成功、正常使用。

查看版本:redis-server -v,并存取键值测试,可以看到正常使用。

(8)添加Redis开机自启服务

对于手动解压缩编译安装的Redis,每次开机时,如果要使用Redis,还需要手动开启服务,如果想要服务开机自启,就需要添加自定义服务了。

自定义服务步骤:

(a)首先,进入系统目录 /etc/systemd/system/ ,

执行sudo touch redis-server.service 创建一个自定义服务 redis-server.service

(b)然后编辑redis-server.service文件,文件内容模版如下:

[Unit]
Description=redis server
Documentation=https://redis.io/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=redis-server /data/redis/redis.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/redis_6379.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/redis_6379.pid)"[Install]
WantedBy=multi-user.target

需要关注的是 ExecStart=redis-server /data/redis/redis.conf,这里存放的是我们手动启动的执行命令,需要根据自己配置文件的所在位置自行调整,其他地方基本上都差别不大,有兴趣的同学也可以动动小手去查阅一下各项参数的作用。

插播一下:

如果觉得在终端编辑比较慢,也可以在自己找好一个模版,根据自己的配置文件路径修改完之后,直接将这个自定义文件上传到此目录下,效果也一致。

(c)开启自定义服务

保存自定义服务后,重新加载服务单元文件:sudo systemctl daemon-reload

将自定义的redis服务文件设置为自启:sudo systemctl enable redis-server.service

启动自定义服务:sudo systemctl start redis-server.service

查看服务状态:sudo systemctl status redis-server.service

重启检验开机自启情况,可以看到效果跟预期一致。

ok,到这里,本次分享记录也算是结束了,希望能对你有所帮助,当然,也包括记性不太好的我自己,也是时常翻阅自己的记录和大家的分享。

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

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

相关文章

半导体设备中的微型导轨应如何选择合适的润滑油?

微型导轨的润滑对于保证其高精度和高稳定性至关重要&#xff0c;尤其是在半导体设备中&#xff0c;微型导轨的润滑油选择需要考虑多个因素&#xff0c;以确保设备的最佳性能和寿命。以下是一些关键点&#xff1a; 1、黏度&#xff1a;润滑油的黏度是影响其流动性和润滑效果的重…

RocketMq详解:六、RocketMq的负载均衡机制

上一章&#xff1a;《SpringBootAop实现RocketMq的幂等》 文章目录 1.背景1.1 什么是负载均衡1.2 负载均衡的意义 2.RocketMQ消息消费2.1 消息的流转过程2.2 Consumer消费消息的流程 3.RocketMq的负载均衡策略3.1 Broker负载均衡3.2 Producer发送消息负载均衡3.3 消费端的负载均…

主打极致性价比,AMD RX 8600/8800显卡定了

*以下内容仅为网络爆料及传闻&#xff0c;一切以官方消息为准。 这谁能想到&#xff0c;率先掏出下一代桌面独立显卡的不是老大哥 NVIDIA&#xff0c;也不是 AMD&#xff0c;反而是三家中存在感最弱的 Intel&#xff01; 就在 12 月 3 日&#xff0c;Intel 正式发布了自家第二…

npm, yarn, pnpm之间的区别

前言 在现代化的开发中&#xff0c;一个人可能同时开发多个项目&#xff0c;安装的项目越来越多&#xff0c;所随之安装的依赖包也越来越臃肿&#xff0c;而且有时候所安装的速度也很慢&#xff0c;甚至会安装失败。 因此我们就需要去了解一下&#xff0c;我们的包管理器&#…

C语言连接数据库

文章目录 一、初始化数据库二、创建数据库连接三、执行增删改查语句1、增删改2、查 四、执行增删改查语句 接下来我简单的介绍一下怎么用C语言连接数据库。 初始化数据库创建数据库连接执行增删改查语句关闭数据库连接 一、初始化数据库 // 数据库初始化 MYSQL mysql; MYSQL* r…

优化LabVIEW数据运算效率的方法

在LabVIEW中进行大量数据运算时&#xff0c;提升计算效率并减少时间占用是开发过程中常遇到的挑战。为此&#xff0c;可以从多个角度着手优化&#xff0c;包括合理选择数据结构与算法、并行处理、多线程技术、硬件加速、内存管理和界面优化等。通过采用这些策略&#xff0c;可以…

计算机的错误计算(一百七十六)

摘要 利用某一大语言模型计算 的值&#xff0c;输出为 0 . 例1. 在某一大语言模型下&#xff0c;计算 的值。其中sin中值取弧度。结果保留16位有效数字。 直接贴图吧&#xff1a; 点评&#xff1a; &#xff08;1&#xff09;以上为一个大模型给的答案。从其回答可知&…

数据结构与算法——1204—递归分治法

1、斐波那契数列优化 使用滚动变量&#xff0c;保存当前计算结果和前两项值 (1)RAB (2)更新计算对象&#xff0c;AB&#xff0c;BR #include<iostream> using namespace std;int fun(int n) {if (n 0)return 0;if (n 1 || n 2)return 1;int num11;int num21;int su…

openstack内部rpc消息通信源码分析

我们知道openstack内部消息队列基于AMQP协议&#xff0c;默认使用的rabbitmq 消息队列。谈到rabbitmq&#xff0c;大家或许并不陌生&#xff0c;但或许会对oslo message有些陌生。openstack内部并不是直接使用rabbitmq&#xff0c;而是使用了oslo.message 。oslo.message 后端的…

Postman自定义脚本Pre-request-script以及Test

这两个都是我们进行自定义script脚本的地方&#xff0c;分别是在请求执行的前后运行。 我们举两个可能经常运用到的场景。 (一)请求A先执行&#xff0c;请求B使用请求A响应结果作为参数。如果我们不用自定义脚本&#xff0c;可能得先执行请求A&#xff0c;然后手动复制响应结果…

总结的一些MySql面试题

目录 一&#xff1a;基础篇 二&#xff1a;索引原理和SQL优化 三&#xff1a;事务原理 四&#xff1a;缓存策略 一&#xff1a;基础篇 1&#xff1a;定义&#xff1a;按照数据结构来组织、存储和管理数据的仓库&#xff1b;是一个长期存储在计算机内的、有组织的、可共享 的…

116. UE5 GAS RPG 实现击杀掉落战利品功能

这一篇&#xff0c;我们实现敌人被击败后&#xff0c;掉落战利品的功能。首先&#xff0c;我们将创建一个新的结构体&#xff0c;用于定义掉落体的内容&#xff0c;方便我们设置掉落物。然后&#xff0c;我们实现敌人死亡时的掉落函数&#xff0c;并在蓝图里实现对应的逻辑&…

Excel技巧:如何批量调整excel表格中的图片?

插入到excel表格中的图片大小不一&#xff0c;如何做到每张图片都完美的与单元格大小相同&#xff1f;并且能够根据单元格来改变大小&#xff1f;今天分享&#xff0c;excel表格里的图片如何批量调整大小。 方法如下&#xff1a; 点击表格中的一个图片&#xff0c;然后按住Ct…

智能合约

06-智能合约 0 啥是智能合约&#xff1f; 定义 智能合约&#xff0c;又称加密合约&#xff0c;在一定条件下可直接控制数字货币或资产在各方之间转移的一种计算机程序。 角色 区块链网络可视为一个分布式存储服务&#xff0c;因为它存储了所有交易和智能合约的状态 智能合约还…

智慧油客:从初识、再识OceanBase,到全栈上线

今天&#xff0c;我们邀请了智慧油客的研发总监黄普友&#xff0c;为我们讲述智慧油客与 OceanBase 初识、熟悉和结缘的故事。 智慧油客自2016年诞生以来&#xff0c;秉持新零售的思维&#xff0c;成功从过去二十年间以“以销售产品为中心”的传统思维模式&#xff0c;转向“以…

【深度学习】手机SIM卡托缺陷检测【附链接】

一、手机SIM卡托用途 SIM卡托是用于固定和保护SIM卡的部件&#xff0c;通过连接SIM卡与手机主板的方式&#xff0c;允许设备访问移动网络&#xff0c;用户可以通过SIM卡进行通话、发送短信和使用数据服务。 二、手机SIM卡托不良影响 SIM卡接触不良&#xff0c;造成信号中断&…

消防物证管理系统|DW-S404实现消防物证智能化管理

一、系统概述 智慧消防物证管理系统DW-S404系统旨在借助现代信息技术&#xff0c;达成消防物证管理的高效化、安全化及智能化管理目标。该系统运用物联网、大数据、云计算等先进技术&#xff0c;实现对消防物证从产生到销毁的全生命周期跟踪与监控&#xff0c;从而增强物证管理…

Odoo :一款免费且开源的食品生鲜领域ERP管理系统

文 / 贝思纳斯 Odoo金牌合作伙伴 引言 提供业财人资税的精益化管理&#xff0c;实现研产供销的融通、食品安全的追踪与溯源&#xff0c;达成渠道的扁平化以及直面消费者的 D2C 等数字化解决方案&#xff0c;以此提升运营效率与核心竞争力&#xff0c;支撑高质量的变速扩张。…

如何部署vue项目到Github Pages

1.创建vue项目 npm create vitelatest my-vue-app -- --template vue 2.创建github仓库 3.连接仓库 在项目根目录右键选择open git base here&#xff0c;如果没有安装git请先安装git。 初始化仓库 $ git init $ git add . $ git commit -m "init"将项目与仓库连…

Dubbo应用篇

文章目录 一、Dubbo简介二、SSM项目整合Dubbo1.生产者方配置2.消费者方配置 三、Spring Boot 项目整合Dubbo1.生产者方配置2.消费者方配置 四、应用案例五、Dubbo配置的优先级别1. 方法级配置&#xff08;Highest Priority&#xff09;2. 接口级配置3. 消费者/提供者级配置4. 全…