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

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的最新稳定版本。你的系统中需要安装wgetcurl来下载源码。如果没有该工具,可以先安装:

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-modeyes,开启保护模式:

    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的各项功能与特性。

相关文章:

  • 【网络安全】Web安全基础 - 第二节:前置基础知识- HTTP协议,握手协议,Cookie及Session
  • 【退役之重学】为什么要加入多级缓存
  • PDF 转 word (优化版)
  • rest_framework_simplejwt自定义使用——登录功能
  • Hive-因精度丢失导致的 join 数据异常
  • STL用法总结
  • 简单说说我对集成学习算法的一点理解
  • 【实战教程】构建可复用的 Spring Boot starter 微服务组件
  • Android 使用kotlin Retrofit2 + Dagger2完成网络请求跟依赖注入组合使用
  • 对未知程序所创建的 PDF 文档的折叠书签层级全展开导致丢签的一种解决方法
  • Python疑难杂症--考试复习
  • c++学习----初识类和对象(上)
  • 1882java密室逃脱管理系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • 揭秘小程序商城的团购奇迹:独特模式引领盈利新纪元
  • Python代码:二十八、密码游戏
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • DOM的那些事
  • Github访问慢解决办法
  • Meteor的表单提交:Form
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • storm drpc实例
  • vuex 笔记整理
  • 记一次删除Git记录中的大文件的过程
  • 讲清楚之javascript作用域
  • 线上 python http server profile 实践
  • MyCAT水平分库
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​queue --- 一个同步的队列类​
  • ​ubuntu下安装kvm虚拟机
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • ###C语言程序设计-----C语言学习(6)#
  • $.proxy和$.extend
  • (21)起落架/可伸缩相机支架
  • (day 12)JavaScript学习笔记(数组3)
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一)面试需要掌握的技巧
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Core 成都线下面基会拉开序幕
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .NET中的Exception处理(C#)
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • @SentinelResource详解
  • [ A*实现 ] C++,矩阵地图
  • [ACTF2020 新生赛]Upload 1
  • [AIGC] 解题神器:Python中常用的高级数据结构
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用
  • [DAX] MAX函数 | MAXX函数