如何在Linux CentOS上安装和配置Redis

如何在Linux CentOS上安装和配置Redis

大家好,我是曾续缘。欢迎来到本教程!今天我将向您介绍在Linux CentOS上安装和配置Redis的详细步骤。Redis是一个高性能的键值存储系统,常用于缓存、消息队列和数据持久化等应用场景。让我们一起开始吧!

首先,您需要下载Redis压缩包,并将其解压到指定目录。然后,安装gcc编译器以便编译Redis源代码。接下来,我们会对环境变量进行配置,使得Redis命令可以在任何目录下执行。最后,我们会对Redis进行配置,并启动Redis服务器。

在整个过程中,我会提供详细的命令和截图,以帮助您更好地理解每个步骤。如果您遇到任何问题,请随时向我提问。让我们一起开始安装和配置Redis吧!

一、下载并安装Redis

  1. 下载Redis压缩包:
cd /usr/local
wget https://download.redis.io/releases/redis-6.0.5.tar.gz

曾续缘

  1. 解压Redis,并将解压出的文件夹重命名:
tar -zvxf redis-6.0.5.tar.gz -C /usr/local
mv redis-6.0.5 redis6

曾续缘

  1. 安装gcc:
yum install gcc-c++
  1. 编译Redis:
cd /usr/local/redis6
make

如果gcc版本过低,会出现以下错误

曾续缘

查看gcc版本是否在5.3以上,yum默认安装4.8.5

曾续缘

  1. 升级到gcc 9.3
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
# scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本,
# 如果要长期使用gcc 9.3的话可选👇
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

曾续缘

  1. 重新编译并安装Redis
    cd /usr/local/redis6
    make distclean
    make
    make PREFIX=/usr/local/redis6 install
    

这个PREFIX关键字的作用是编译的时候用于指定程序存放的路径,方便后续的卸载,直接rm -rf /usr/local/redis6 即可删除redis。曾续缘

曾续缘

二、配置环境变量

为了方便后续操作,我们可以配置环境变量,使得Redis命令可以在任何目录下执行。

  1. 编辑环境变量配置文件:
vim /etc/profile
  1. 按下i键进入编辑模式,在文件末尾添加以下内容:
export REDIS_HOME=/usr/local/redis6
export PATH=$PATH:$REDIS_HOME/src/

按下Esc键退出编辑模式,并输入:wq保存并退出vim编辑器。

曾续缘

  1. 保存并退出后,刷新配置信息:
source /etc/profile
  1. 最后,让我们验证redis是否成功安装。
redis-server -v
redis-cli -v

曾续缘

如果redis安装成功,你将会看到redis版本信息的输出。

因为redis 的server 与 cli 同时安装,所以二者查出的结果基本一致。

三、配置Redis

  1. 编辑配置文件redis.conf
vim /usr/local/redis6/redis.conf
  1. 以守护进程模式启动Redis: 修改redis.conf中的daemonize nodaemonize yes

曾续缘

曾续缘

redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。

  1. 如果需要远程连接,取消保护模式,将protected-mode yes设置为protected-mode no,同时注释bind

曾续缘

曾续缘

  1. 找到配置文件里面 # requirepass footbared,可以将footbared直接修改为自己的密码

曾续缘

配置RDB

RDB 是一种通过创建数据集的时间点快照来实现持久化的机制。当触发快照时,Redis 会保存整个数据集到一个单独的文件中。可以通过以下几种方式触发 RDB 持久化:

  • 手动触发:使用 SAVE 命令或者 BGSAVE 命令。
  • 自动触发:根据配置文件中的规则自动触发。

设置保存策略:

  • save 指令用于定义在多少秒内有多少个键变化时执行一次快照。
  • 例如,下面的配置表示在 900 秒内如果有 1 个 key 改变,或者在 300 秒内有 10 个 keys 改变,又或者在 60 秒内有 10000 个 keys 改变时,Redis 将执行一次快照。
save 900 1
save 300 10
save 60 10000

设置快照文件名:

  • dbfilename 选项指定 RDB 文件的名称。
dbfilename dump.rdb

设置工作目录:

  • dir 选项指定 RDB 文件的保存路径。
# Note that you must specify a directory here, not a file name.
dir ./

启用AOF

AOF 是一种日志形式的数据持久化方式,它记录了所有写入操作的命令,可以在启动时重新执行这些命令来恢复数据。

如果启用了 AOF,那么 RDB 文件主要用于灾难恢复。

曾续缘

  • appendonly 选项用来启用或禁用 AOF。
  • appendfilename 选项指定 AOF 文件的名称。
  • appendfsync 选项控制 AOF 文件的同步频率。可选值包括 alwayseverysecnoalways 表示每次写入都同步,everysec 表示每秒同步一次,no 则完全依赖操作系统的行为。
  • auto-aof-rewrite-percentageauto-aof-rewrite-min-size 控制 AOF 文件何时进行重写。

按下Esc键退出编辑模式,并输入:wq保存并退出vim编辑器。

四、启动Redis服务器

  1. 指定配置文件,启动Redis服务器
redis-server redis.conf 
  1. 查看Redis运行情况:
ps -ef|grep redis

曾续缘

  1. 启动Redis客户端
redis-cli

曾续缘

  1. 使用auth password命令进行认证。如果密码正确 将显示OK,表示认证成功

曾续缘

  1. 云服务器有防火墙时,需要在云服务器控制台安全组下配置放开 6379端口,以允许远程连接到 Redis数据库。曾续缘

    虚拟机有防火墙时,需要开放 Redis使用的端口(默认为 6379)

firewall-cmd --query-port=6379/tcp 查看端口状态, no表示未开启
firewall-cmd --add-port=6379/tcp --permanent  # 永久开放端口
systemctl restart firewalld  # 重启防火墙
  1. 关闭Redis服务器
ps -ef | grep redis
# 找到redis-server的进程号pid
kill -9 pid

曾续缘

五、修改密码

要修改Redis的登录密码,我们需要编辑Redis的配置文件。

编辑配置文件

vim /usr/local/redis6/redis.conf

打开配置文件并找到这一行:(查找/requirepass)

requirepass <password>

曾续缘

修改为自己的密码:

requirepass my_secure_password

重启 Redis 服务

修改配置文件后,需要重启 Redis 服务以使更改生效。

如果使用的是 systemd 或类似的系统管理工具,可以使用以下命令重启 Redis:

sudo systemctl restart redis

如果 Redis 是作为一个普通的进程运行的,我们需要手动停止它再启动:

# 先找到 Redis 进程的 PID
ps -ef | grep redis-server
# 停止 Redis
kill <PID>
# 启动 Redis
redis-server /usr/local/redis6/redis.conf

测试连接

曾续缘

现在,当使用 redis-cli 连接到 Redis 服务器时,需要先输入密码:

redis-cli
127.0.0.1:6379> auth my_secure_password
OK
127.0.0.1:6379> 

如果没有正确输入密码,会收到一个错误消息:

127.0.0.1:6379> ping
(error) NOAUTH Authentication required.

这样就完成了 Redis 密码的设置。

以上就是在Linux系统中进行Redis初始化配置的详细步骤。通过按照这些步骤操作,您可以成功完成Redis的初始化配置。希望这篇教程对您有所帮助!

参考链接:https://cengxuyuan.cn

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

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

相关文章

requests库post方法怎么传params类型的参数

在使用 requests 库的 post 方法时&#xff0c;params 类型的参数通常用于在 URL 中作为查询字符串传递。这与 data 或 json 参数不同&#xff0c;后者是放在请求体中的。下面详细介绍如何在使用 post 方法时传递 params 参数。 使用 params 参数 params 参数接受一个字典或包…

C++常见问题与思考

TLS&#xff08;线程本地存储&#xff09;原理 线程本地存储&#xff08;Thread Local Storage&#xff0c;TLS&#xff09;是一种机制&#xff0c;它允许每个线程拥有自己独立的变量实例&#xff0c;这些变量的生命周期与线程相同。也就是说&#xff0c;不同线程对同一个 TLS…

如何快速下载并安装 Postman?

从下载、安装、启动 Postman 这三个方面为大家详细讲解下载安装 Postman 每一步操作&#xff0c;帮助初学者快速上手。 Postman 下载及安装教程(2025最新)

使用Gitee Go流水线部署个人项目到服务器指南

使用Gitee Go流水线部署个人项目到服务器指南 前言&#xff01;&#xff01;&#xff01; 本文解决的问题&#xff1a; 你有一台ECS服务器&#xff0c;你在上面部署了一个Java服务也就是一个jar&#xff0c;你觉着你每次手动本地打包&#xff0c;上传&#xff0c;在通过命令去…

Linux第一节:Linux系统编程入门指南

摘要 本文面向Linux初学者&#xff0c;系统讲解操作系统核心概念、Shell命令实战、权限管理精髓及目录结构解析。通过思维导图命令示例原理解析的方法&#xff0c;帮助开发者快速构建Linux知识体系&#xff0c;掌握生产环境必备技能。 一、Linux的前世今生&#xff1a;从实验室…

【Linux 维测专栏 5 -- linux pstore 使用介绍】

文章目录 Linux pstore 功能简介1. pstore 概述2. pstore 的核心功能3. pstore 的工作原理4. pstore 的使用示例5. pstore 的优势6. 典型应用场景配置示例1)DTS配置2)config配置运行测试及log问题小结Linux pstore 功能简介 1. pstore 概述 pstore(Persistent Storage)是…

在 ASP .NET Core 9.0 中使用 Scalar 创建漂亮的 API 文档

示例代码&#xff1a;https://download.csdn.net/download/hefeng_aspnet/90407900 Scalar 是一款可帮助我们为 API 创建精美文档的工具。与感觉有些过时的默认 Swagger 文档不同&#xff0c;Scalar 为 API 文档提供了全新而现代的 UI。其简洁的设计让开发人员可以轻松找到测试…

Rabbitmq消息被消费时抛异常,进入Unacked 状态,进而导致消费者不断尝试消费(下)

一、消费流程图 消息在消费出现异常的时候&#xff0c;将一直保留在消息队列&#xff0c;所以你会看到以下奇怪的现象&#xff1a; 消息队列仅有5个消息&#xff0c; 投递速度也非常快&#xff0c;结果却一直无法消费掉。 二、重试策略 重试机制的使用场景&#xff1a;重试机制…

【STM32】知识点介绍二:GPIO引脚介绍

文章目录 一、概述二、GPIO的工作模式三、寄存器编程 一、概述 GPIO&#xff08;英语&#xff1a;General-purpose input/output&#xff09;,即通用I/O(输入/输出)端口&#xff0c;是STM32可控制的引脚。STM32芯片的GPIO引脚与外部设备连接起来&#xff0c;可实现与外部通讯、…

JavaScript流程控制精讲(二)运算符与循环实战

JavaScript流程控制精讲&#xff08;二&#xff09;运算符与循环实战 学习目标&#xff1a;掌握条件判断与循环控制&#xff0c;实现基础业务逻辑 核心要点&#xff1a;运算符优先级 | 短路运算 | 循环优化 | 项目实战 一、运算符进阶技巧 1.1 算术运算符 console.log(5 % 3)…

如何在IPhone 16Pro上运行python文件?

在 iPhone 16 Pro 上运行 Python 文件需要借助第三方工具或远程服务&#xff0c;以下是具体实现方法和步骤&#xff1a; 一、本地运行方案&#xff08;无需越狱&#xff09; 使用 Python 编程类 App 以下应用可在 App Store 下载&#xff0c;支持直接在 iPhone 上编写并运行 …

【赵渝强老师】达梦数据库的数据库对象

达梦数据库中包含各种数据库对象&#xff0c;主要分为两大类型&#xff1a;基本数据库对象和复杂数据库对象。下面分别进行介绍。 视频讲解如下 【赵渝强老师】达梦数据库的数据库对象 一、 基本数据库对象 常见的基本数据库对象有&#xff1a;表、索引、视图、序列、同义词等…

【每日算法】Day 6-1:哈希表从入门到实战——高频算法题(C++实现)

摘要 &#xff1a;掌握高频数据结构&#xff01;今日深入解析哈希表的核心原理与设计实现&#xff0c;结合冲突解决策略与大厂高频真题&#xff0c;彻底掌握O(1)时间复杂度的数据访问技术。 一、哈希表核心思想 哈希表&#xff08;Hash Table&#xff09; 是一种基于键值对的…

LeetCode 第29题、30题

LeetCode 第29题&#xff1a;两数相除 题目描述 给你两个整数&#xff0c;被除数dividend和除数divisor。将两数相除&#xff0c;要求不使用乘法、除法和取余运算。整数除法应该向零截断&#xff0c;也就是截去其小数部分。例如&#xff0c;8.345将被截断为8&#xff0c;-2.733…

26考研——树与二叉树_树、森林(5)

408答疑 文章目录 二、树、森林树的基本概念树的定义和特性树的定义树的特性 基本术语树的基本术语和概念祖先、子孙、双亲、孩子、兄弟和堂兄弟结点的层次、度、深度和高度树的度和高度分支结点和叶结点有序树和无序树路径和路径长度 森林的基本术语和概念森林的定义森林与树的…

【HarmonyOS Next之旅】DevEco Studio使用指南(六)

目录 1 -> 在模块中添加Ability 1.1 -> Stage模型添加UIAbility 1.1.1 -> 在模块中添加UIAbility 1.1.2 -> 在模块中添加Extension Ability 2 -> 创建服务卡片 2.1 -> 概述 2.2 -> 使用约束 2.3 -> 创建服务卡片 2.4 -> 创建动态/静态卡片…

Langchain 多模态输入和格式化输出

多模态输入 图片处理&#xff08;最高频&#xff09; 1.1 URL形式&#xff08;推荐大文件&#xff09; from langchain.schema import HumanMessage from langchain.chat_models import ChatOpenAIchat ChatOpenAI(model"gpt-4-vision-preview")message HumanMes…

Excel多级联动下拉菜单的自动化设置(使用Python中的openpyxl模块)

1 主要目的 在Excel中&#xff0c;经常会遇到需要制作多级联动下拉菜单的情况&#xff0c;要求单元格内填写的内容只能从指定的多个选项中进行选择&#xff0c;并且需要设置多级目录&#xff0c;其中下级目录的选项内容要根据上级目录的填写内容确定&#xff0c;如下图所示&am…

3.25-1 postman执行+弱网测试

1.导出json脚本 2.打包json文件 3.下载的文件 二 .导入脚本 选择文件 点击导入 导入的接口 三.多接口运行 &#xff08;1&#xff09;集合右键&#xff0c;点击run &#xff0c;运行多个接口 2.编辑环境&#xff0c;集合&#xff0c;执行次数等 运行多个接口 四.运行多个接口…

Pear Admin Flask 开发问题

下载代码请复制以下命令到终端执行 git clone https://gitee.com/pear-admin/pear-admin-flask 于是我下载git 完成安装后&#xff1a; 安装 Git 后出现的页面是 “Git for Windows 的版本发布说明&#xff08;Release Notes&#xff09;”&#xff0c;通常会在安装完成后自动弹…