CentOS系统上安装单机版Redis教程
一、前言
1.1 为什么选择Redis?
Redis不仅支持丰富的数据类型(如字符串、哈希、列表、集合、有序集合等),还具有高性能、持久化、发布订阅、事务和Lua脚本等特点。这些优势使其成为分布式系统和高并发应用中的首选。
1.2 为什么选择CentOS?
CentOS作为一款开源的类Unix操作系统,因其稳定性、高效性和社区支持广泛应用于服务器端。很多企业在生产环境中使用CentOS,从而本教程选择在CentOS环境上安装Redis。
二、准备工作
2.1 安装前提条件
确保您拥有以下条件:
- 一台已安装CentOS系统的服务器或虚拟机;
- 拥有该系统的root访问权限或具有sudo权限的用户;
- 需连接互联网。
三、安装步骤
3.1 更新系统软件包
在安装Redis之前,先更新系统中已安装的软件包。这可以确保使用到最新版本的软件包,避免兼容性问题。
sudo yum update -y
3.2 安装依赖库
Redis需要一些开发库才能成功编译和运行,常见的依赖库为gcc。
sudo yum install -y gcc
3.3 下载Redis源码
我们将从Redis的官方网站下载Redis的最新稳定版本。你的系统中需要安装wget或curl来下载源码。如果没有该工具,可以先安装:
sudo yum install -y wget
使用wget下载Redis源码:
wget http://download.redis.io/releases/redis-6.2.6.tar.gz
(备注:查看最新版本,可以到Redis官方下载页面redis.io/download)
3.4 解压源码包
使用tar命令解压下载的源码包:
tar zxvf redis-6.2.6.tar.gz
3.5 编译安装Redis
切换到解压后的Redis目录:
cd redis-6.2.6
然后执行make命令编译Redis:
make
编译过程完成后,继续执行以下命令进行安装:
sudo make install
这将会把Redis的可执行文件安装到/usr/local/bin目录下。
3.6 配置Redis
3.6.1 创建配置目录
为了使Redis更便于管理,我们将创建一个专门的目录用来放置Redis的配置文件和数据文件:
sudo mkdir -p /etc/redis /var/lib/redis
3.6.2 复制默认配置文件
将默认的配置文件复制到配置目录中:
sudo cp redis.conf /etc/redis/redis.conf
3.6.3 修改配置文件
编辑Redis配置文件redis.conf:
sudo vi /etc/redis/redis.conf
修改以下几项内容:
-
将
daemonize设置为yes,使Redis以后台进程的方式运行:daemonize yes -
设置
dir为数据文件存储目录:dir /var/lib/redis -
设置
bind为本地IP地址,限制只允许本地访问(为了安全):bind 127.0.0.1 -
设置
protected-mode为yes,开启保护模式:protected-mode yes
完成编辑后保存退出。
3.7 设置Redis为系统服务
3.7.1 创建系统服务文件
我们将为Redis创建一个系统服务文件,使其随着系统启动自动启动。
创建并编辑服务文件:
sudo vi /etc/systemd/system/redis.service
在文件中添加以下内容:
[Unit]
Description=Redis In-Memory Data Store
After=network.target[Service]
User=root
Group=root
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always[Install]
WantedBy=multi-user.target
保存并退出编辑器。
3.7.2 启动并启用Redis服务
执行以下命令启动Redis服务:
sudo systemctl start redis
并设置Redis服务开机自启动:
sudo systemctl enable redis
3.8 验证Redis安装
3.8.1 检查服务状态
执行以下命令,确认Redis服务是否正常启动:
sudo systemctl status redis
如显示active (running),则说明Redis已成功启动。
3.8.2 使用Redis客户端连接
执行Redis命令行客户端工具,测试是否可以连接到Redis服务器:
redis-cli
输入以下命令,检测Redis是否正常工作:
ping
若返回PONG,表示Redis安装和配置成功。
四、常见问题和解决方法
4.1 无法启动Redis服务
问题描述
在启动Redis服务时,可能会显示以下错误信息:
Job for redis.service failed because the control process exited with error code.
解决方法
查看日志文件/var/log/messages,检查详细的错误信息。通常是因为配置文件中的某项设置错误,请根据日志中的提示修正配置文件,然后重启服务。
4.2 安装过程中依赖库缺失
问题描述
在编译过程中,可能会显示类似以下的错误信息:
make: gcc: Command not found
解决方法
这是因为系统中缺少gcc编译器,可以使用如下命令补充安装:
sudo yum install -y gcc
4.3 Redis无法绑定到指定端口
问题描述
Redis服务无法启动,因为指定端口已被其他程序占用。
解决方法
修改redis.conf文件中的port项,指定一个未被占用的端口号。如:
port 6380
五、总结
通过上述步骤,我们完成了在CentOS系统上安装单机版Redis的全过程。从环境准备到安装、配置、启动以及常见问题的解决,希望这篇教程能够对您在CentOS系统上部署Redis有所帮助。Redis作为高效的缓存解决方案,能够极大提升系统的性能和响应速度,是现代分布式系统的关键组件之一。在实际应用中,根据业务需求和性能要求,还可以进一步配置和优化Redis。
六、附录
6.1 常用Redis命令
SET key value:设置键值对。GET key:获取键的值。DEL key:删除键。EXISTS key:检查键是否存在。FLUSHALL:清空所有数据。
6.2 参考资料
- Redis官方文档:https://redis.io/documentation
- CentOS官方文档:https://www.centos.org/docs
至此,您已经成功在CentOS系统上部署了单机版Redis。希望这篇教程能帮助您顺利完成安装部署过程,并深入了解Redis的各项功能与特性。
相关文章:
CentOS系统上安装单机版Redis教程
一、前言 1.1 为什么选择Redis? Redis不仅支持丰富的数据类型(如字符串、哈希、列表、集合、有序集合等),还具有高性能、持久化、发布订阅、事务和Lua脚本等特点。这些优势使其成为分布式系统和高并发应用中的首选。 1.2 为什么…...
纯Java实现Google地图的KMZ和KML文件的解析
目录 前言 一、关于KMZ和KML 1、KMZ是什么 2、KML是什么 二、Java解析实例 1、POM.xml引用 2、KML 基类定义 3、空间对象的定义 4、Kml解析工具类 三、KML文件的解析 1、KML解析测试 2、KMZ解析测试 四、总结 前言 今天是六.一儿童节,在这里祝各位大朋友…...
k8s自定义资源你会创建吗
创建自定义资源定义 CustomResourceDefinition 当你创建新的 CustomResourceDefinition(CRD)时,Kubernetes API 服务器会为你所 指定的每一个版本生成一个 RESTful 的 资源路径。CRD 可以是名字空间作用域的,也可以是集群作用域的…...
CATIA二次开发VBA入门(4)——进程外开发环境搭建,vb.net在Visual Studio中开发,创建圆柱曲面的宏录制到二次开发案例
目录 引出vb.net和vb6.0 进程外开发环境搭建vb.net开发环境搭建《CATIA二次开发技术基础》模板 添加宏库引用 vs开发环境初步vs中的立即窗口对象浏览器 建立模板案例:创建一堆圆柱曲面第一步:录制宏第二步:代码精简第三步:for循环…...
c++字符串相关接口
c字符串相关接口 1.str2wstr(str转换wstr)2.wstr2str(str转换wstr)3.Utf8ToAsi(Utf8转换ANSI)4.AsiToUtf8(ANSI转换Utf8)5.stringformatA/stringformatW(按照指定的格式格式化字符串)6.GetStringBetween(获取cStart cEnd之间的字符串)7.Char2Int(char转int)8.Str2Bin(字符串转换…...
Maven打包错误:无效的源发行版:17
1. 报错问题 在用maven进行打包时(clean & install),报如下错误: 一开始让我很摸不着头脑,我确定我的pom.xml,还有IDEA中的Project Settings是正确的。 2. 排查 尽管确定,但还是一个个排…...
【环境栏Composer】Composer常见问题(持续更新)
1、执行composer install提示当前目录中没有 composer.lock 文件时 No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Composer 在执行 install 命令时会…...
塑造更智慧的AI:策略与路径探索
提升数据质量: 数据清洗:去除数据中的异常值、缺失值、噪声等干扰因素,确保数据的准确性和一致性。数据标注:为数据集提供准确的标签,以便进行有监督学习。标注的质量直接影响模型的性能。数据增强:通过图像…...
软设之快速排序
快速排序是冒泡排序的改进算法 它采用的是分治法,基本思想是把原问题分解为若干规模更小但结构与原问题相似的子问题,通过递归解决这些子问题,然后将这些子问题的解组合成原问题的解。 它的步骤是 1.在待排序的n个记录中任取一个记录&…...
从零学算法2965
2965. 找出缺失和重复的数字 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次,b 缺失 之外,每个整数都 恰好出现一次 。 任务是找出重复的数字a 和缺失的数字 b 。 返回一个…...
【Mac版】Java生成二维码
软件版本 IntelliJ IDEA:2023.2 JDK:17 Tomcat:10.1.11 Maven:3.9.3 技术栈 servlet谷歌的:zxing 生成普通的黑白二维码在二维码中间添加一个小图标 github开源项目:qrcode qrcode开源项目的内部是基于z…...
ROS2自定义服务接口
ROS2自定义服务接口 在src/village_interface 下构建srv文件夹 src/village_interface/srv 下新建一个BorrowMoney.srv 遵循大小写编程规范 # 客户端请求 string name uint32 money # 中间这三个横杠很重要 不能删掉 --- # 服务端响应 bool success uint32 money接口编译 修改…...
linux /www/server/cron内log文件占用空间过大,/www/server/cron是什么内容,/www/server/cron是否可以删除
linux服务器长期使用宝塔自带计划任务,计划任务执行记录占用服务器空间过大,导致服务器根目录爆满,需要长期排查并删除 /www/server/cron 占用空间过大问题处理 /www/server/cron是什么内容?/www/server/cron是否可以删除…...
C++青少年简明教程:break语句、continue语句
C青少年简明教程:break语句、continue语句 break语句 只能用在switch语句和循环语句(for循环、while循环和do-while循环)中。作用:跳出switch语句或提前终止循环。 break语句的基本语法如下: break; break语句的示例…...
MySQL实战行转列(或称为PIVOT)实战sales的表记录了不同产品在不同月份的销售情况,进行输出
有一个sales的表,它记录了不同产品在不同月份的销售情况: productJanuaryFebruaryMarchProduct AJanuary10Product AFebruary20Product BJanuary5Product BFebruary15Product CJanuary8Product CFebruary12 客户需求展示为如下的样子: pro…...
牛客NC164 最长上升子序列(二)【困难 贪心+二分 Java/Go/PHP/C++】
题目 题目链接: https://www.nowcoder.com/practice/4af96fa010c44638a7e112abf65f7237 思路 贪心二分 所谓贪心,就是往死里贪,所以对于最大上升子序列,结尾元素越小,越有利于后面接上其他的数,也就可能变…...
电子烟开发【恒压、恒有效算法】
恒压算法 pwm是通过软件模拟的 pwm满值运行是250全占空比 #define D_TARGET_AVERAGE_VOLTAGE 3500 //R_ADC1_Vout :发热丝两端AD值 //R_ADC_FVR :电池电压AD值 //FVR_VOLTAGE :电池AD参考电压 满电值AD //R_Smk1Duty :最后…...
基于Open3D的点云处理22-非阻塞可视化/动态可视化
官网测试用例:examples/python/visualization/non_blocking_visualization.py 非阻塞可视化,即实时更新点云数据; 如下,动态可视化ICP的匹配过程: import open3d as o3d import numpy as npif __name__ == "__main__":o3d.utility.set_verbosity_level(o3d.ut…...
C++面试题其一
C和C的区别 C和C都是广泛使用的编程语言,但它们有显著的区别: 语言范式: C:是一种过程化编程语言,强调过程和函数的使用。C:是一种多范式编程语言,支持面向对象编程、泛型编程和过程化编程。 …...
CentOS7某天的samba服务搭建操作记录(还没成功)
#CentOS7 yum软件仓库阿里云 samba服务器配置失败 sensors成功了 (花了200元组装H61测试机,75元的主板只有一块能用,垃圾板但又不完全能用) 2024.5月的某天记录如下: https://blog.csdn.net/dszgf5717/article/details/53732182 …...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
