Redis 7.x如何安装与配置?保姆级教程

大家好,我是袁庭新。最新写了一套最新版的Redis 7.x企业级开发教程,今天先给大家介绍下Redis 7.x如何在Linux系统上安装和配置。

1 Redis下载与安装

使用非关系型数据库Redis必须先进行安装配置并开启Redis服务,然后使用对应客户端连接使用。Redis支持多种方式的安装配置,例如Linux系统安装、Docker镜像安装等,不同安装方式的安装过程也不相同。

1.1 Redis下载

Redis版本号采用国际标准惯例,即“主版本号.副版本号.补丁级别”。

1.通过访问Redis的官方下载地址https://download.redis.io/releases/进行Redis的下载,如下图所示。

2.也可以通过访问国内镜像进行下载,以华为云镜像为例。访问华为云镜像地址https://mirrors.huaweicloud.com/home,直接打开访问即可。在打开的网页中输入“Redis”关键词搜索对应的镜像,然后选择对应的版本进行下载即可。

3.同时还可以通过wget命令进行Redis的下载,在终端输入如下的命令。

wget https://github.com/redis/redis/archive/7.2.5.tar.gz

1.2 Redis安装

Redis官方网站没有提供Windows版的安装包,可以通过访问GitHub的https://github.com/tporadowski/redis/releases地址来下载Windows版的Redis安装包,但官方不推荐。大多数企业都是基于Linux服务器来部署项目,因此课程中我们会基于Linux系统来安装Redis,此处选择的Linux版本为CentOS 7。

1.安装gcc。Redis是基于C语言编写的,因此首先需要先安装Redis所需要的gcc依赖。Linux系统必须处于连网的状态下。

yum install -y gcc tcl

2.忘记是否安装过,可以使用gcc -v命令查看gcc版本,如果没有安装过,会提示命令不存在。

gcc -v

3.拷贝redis-7.2.5.tar.gz到Linux的/usr/local/src目录下。

scp /Users/yuanxin/Downloads/redis-7.2.5.tar.gz root@192.168.230.131:/usr/local/src

4.将redis-7.2.5.tar.gz解压到//usr/local/src目录下。

tar -zxvf redis-7.2.5.tar.gz

5.先进入到Redis的安装目录redis-7.2.5中,然后进行编译。

make

6.编译完成后,开始安装。如果没有出错,就表示安装成功了。

make install

7.默认Redis的安装路径是在/usr/local/bin目录下。

[root@node1 redis-7.2.5]# ll /usr/local/bin
总用量 30184
-rwxr-xr-x. 1 root root  7155936 7月  10 09:35 redis-benchmark
lrwxrwxrwx. 1 root root       12 7月  10 09:35 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root       12 7月  10 09:35 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root  7811392 7月  10 09:35 redis-cli
lrwxrwxrwx. 1 root root       12 7月  10 09:35 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 15933144 7月  10 09:35 redis-server

该目录已经默认配置到环境变量,因此可以在任意目录下运行这些命令。对该目录下的文件如下的说明。

文件作用
redis-cli是Redis提供的命令行客户端
redis-server是Redis的服务端启动脚本
redis-sentinel是Redis的哨兵模式启动脚本

2 启动Redis

Redis的启动方式有很多种方式,常见使用的有:默认启动、指定配置启动、开机自启。

2.1 默认启动

Redis安装完成后,在任意目录输入redis-server命令即可启动Redis服务。这种情况下,默认启动的配置文件是redis.conf。

redis-server

在终端运行上述命令后,输出如下图所示的内容则表明Redis服务启动成功。

这种启动属于前台启动,会阻塞整个会话窗口,窗口关闭或者按下“CTRL + C”则Redis服务停止,因此不推荐使用。

Redis的端口为什么是6379?6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。MERZ长期以来被antirez(Redis作者)及其朋友当作愚蠢的代名词。

2.2 指定配置启动

Redis默认不会使用后台运行,如果你需要将Redis配成后台运行,需要在redis.conf文件中进行修改,就在我们之前解压的Redis安装包下(/usr/local/src/redis-7.2.5)。当你后台服务启动的时候,会写成一个进程文件运行。

1.实际开发当中,不要直接修改redis.conf文件,我们先将这个配置文件备份一份。

[root@node1 redis-7.2.5]# cp redis.conf redis.conf.backup

2.编辑redis.conf文件。然后修改redis.conf文件中的一些配置(在redis.conf文件中配置Redis为后台运行),如下所示。

# 允许访问的地址,默认是“bind 127.0.0.1 -::1”,会导致只能在本地访问。修改为“bind 0.0.0.0 -::1”则可以在任意IP访问,生产环境不要设置为“bind 0.0.0.0 -::1”
bind 0.0.0.0 -::1
# 守护进程,修改为yes后即可后台运行,默认值为no
daemonize yes 
# 密码,设置后redis-cli访问必须输入密码,默认没有配置密码
requirepass 123456

在默认情况下requirepass参数值为空的,表示无需通过密码验证就可以连接到Redis服务。

3.其他的有关Redis的常见配置,以下参数非必要配置。

# 监听的端口
port 6379
# 客户端空闲N秒后关闭连接(0表示禁用)
timeout 0
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir ./
# 设置Redis实例中数据库数量,默认有16个库,编号0~15
databases 16
# 设置Redis能够使用的最大内存,默认没有配置
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"

4.以配置文件的方式启动Redis。使用redis-server指令启动Redis服务的时候,可以在指令后添加Redis配置文件的路径,以设置Redis是以何种配置进⾏启动。

# 进入Redis安装目录 
[root@node1 ~]# cd /usr/local/src/redis-7.2.5
# 指定配置文件启动redis服务
[root@node1 redis-7.2.5]# redis-server redis.conf

5.检测6379端口是否在监听。

[root@node1 redis-7.2.5]# netstat -lntp | grep 6379
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      8925/redis-server 0 
tcp6       0      0 ::1:6379                :::*                    LISTEN      8925/redis-server 0 

6.停止Redis服务。利用redis-cli来执行shutdown命令,即可停止Redis服务。需要注意的是,如果Redis实例没有设置访问密码以及修改默认端口号,则这里的参数"-a"和"-p"可省略不写。

# 因为之前配置了密码,因此需要通过-u来指定密码
[root@node1 redis-7.2.5]# redis-cli -a 123456 -p 6379 shutdown

2.3 开机自启

我们也可以通过配置来实现Redis的开机自启动。

1.首先,需新建一个系统服务文件。

vim /etc/systemd/system/redis.service

2.将以下的内容复制放在redis.service文件中。

[Unit]
Description=redis-server
After=network.target
​
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-7.2.5/redis.conf
PrivateTmp=true
​
[Install]
WantedBy=multi-user.target

3.然后重载系统服务。

systemctl daemon-reload

4.现在,我们可以用下面这组命令来操作Redis服务了。

# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis

5.执行下面的命令,可以让Redis开机自启。

systemctl enable redis

3 Redis客户端

安装完成Redis后,我们就可以操作Redis数据库来实现数据的CRUD操作了。这就需要用到Redis客户端,包括命令行客户端、图形化桌面客户端、编程客户端。

3.1 Redis命令行客户端

Redis安装完成后就自带了Redis命令行客户端redis-cli,通过该客户端可以运行Redis命令,用于在Redis服务上执行操作。

3.1.1 连接本地Redis服务

如果需要连接本地Redis服务,Redis客户端的基本语法为:

$ redis-cli

启动Redis服务器后,打开终端并输入命令redis-cli,该命令会连接本地的Redis 服务。

$ redis-cli
127.0.0.1:6379> PING
PONG

通过执行PING命令,用于检测Redis服务器是否启动;如果响应结果为PONG,说明已经成功连接到了Redis服务器。

3.1.2 连接远程Redis服务

如果需要在远程Redis服务上执行命令,同样我们使用的也是redis-cli命令。语法格式如下。

$ redis-cli -h host -p port -a password

对上述命令中的参数做如下的说明。

参数作用
-h host用于指定远程Redis服务器的IP地址,默认是127.0.0.1。
-p port用于指定Redis远程服务器的端口号,默认是6379。
-a password指定Redis的访问密码,即redis.conf文件中的requirepass参数处填写的密码。可选参数,若远程服务器设置了密码则需要输入。

下面示例展示了如何连接到远程Redis服务器。

[root@node1 redis-7.2.5]# redis-cli -h 127.0.0.1 -p 6379 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> EXIT

3.1.3 Redis连接命令

Redis连接命令主要是用于连接Redis服务。只有当Redis客户端与服务器正常连接后才能够实现彼此的交互、通信。Redis 通过“Redis序列化协议”(简称RESP),实现客户端与服务端之间的连接通信,该协议主要包括两个部分:网络模型和序列化协议。其中,网络模型主要负责数据交互的组织方式,序列化协议则实现了数据的序列化。

由此可知,Redis客户端与服务端交互的数据是以序列后的协议数据进行传输的。下面是一个简单的请求/响应示意图,如下所示。

下表罗列了常用的Redis连接命令:

命令描述
AUTH password验证密码是否正确。
ECHO message打印字符串。
PING查看服务是否运行。
QUIT关闭当前连接。
SELECT index切换到指定的数据库。

以下示例演示了客户端如何通过密码验证连接到Redis服务,并检测服务是否在运行,以及Redis其他连接命令的使用。

# 进入控制台后,通过auth命令来指定密码
[root@node1 redis-7.2.5]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> AUTH 123456
OK
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> ECHO "Hello Redis"
"Hello Redis"
192.168.230.131:6379> QUIT

执行上述命令后,终端的结果如下图所示。

3.2 Redis图形化桌面客户端

Redis有许多第三方可视化工具,可以让你更加直观形象地的操作Redis数据库,常见的Redis GUI工具有Redis Desktop Manager(又称RDM)、Another Redis DeskTop Manager及FastoRedis。

3.2.1 AnotherRedisDesktopManager

Another Redis Desktop Manager是一个更快、更好、更稳定的Redis桌面(GUI)管理客户端工具,兼容Windows、Mac、Linux,性能出众,轻松加载海量键值。

Another Redis Desktop Manager支持哨兵、集群、ssh通道、ssl认证、stream、subscribe订阅、树状视图、命令行,以及暗黑模式;多种格式化方式,甚至能够自定义格式化脚本,满足你的一切需求。

Another Redis Desktop Manager官网下载地址https://goanother.com/cn,而且完全开源免费。

3.2.2 Redis Insight

Redis Insight是由Redis官方提供的免费图形化桌面客户端工具。Redis Insight是一个功能强大的桌面用户界面,可帮助你可视化和优化Redis和Redis Stack的数据。此外,它还支持在功能齐全的桌面UI客户端中进行CLI交互。

Redis Insight官网下载地址https://redis.io/insight,而且完全开源免费。

3.2.3 RedisDesktopManager

Redis Desktop Manager(简称RDM)是一个跨平台Redis桌面管理软件,支持Windows、Liunx和macOS。该工具为用户提供了易于使用的Redis可视化操作,同时支持SSL/TLS加密,以及SSH隧道技术和云Redis实例,例如Amazon ElastiCache,Microsoft Azure Redis Cache和Redis Labs。

GitHub上的大神编写了Redis的图形化桌面客户端,下载地址是https://github.com/uglide/RedisDesktopManager。不过该仓库提供的是RedisDesktopManager的源码,并未提供Windows安装包(此工具付费)。

我们可以访问https://github.com/lework/RedisDesktopManager-Windows/releases这个仓库找到RDM的安装包(此工具免费)。

Redis的图形化界面工具只是辅助操作,可根据喜好进行选择性下载。我人个推荐使用前两种,因为开源免费,且对不同的操作系统提供了版本支持。本教程我使用的是AnotherRedisDesktopManager客户端工具。

3.3 桌面客户端连接Redis

由于Redis的图形化桌面客户端工具安装都非常简单,傻瓜式安装即可,因此关于工具的安装这里将不再展开介绍。下面我们以AnotherRedisDesktopManager工具为例,介绍如何连接Redis数据库。

1.防火墙相关操作命令,在使用Redis的图形化桌面客户端连接Redis服务之前,一定要先关闭Linux的防火墙,否则未来在连接Redis服务时可能会提示" Client On Error: Error: connect ECONNREFUSED 192.168.230.131:6379 Config right?"的错误。

# 查询防火墙状态
$ systemctl status firewalld
# 启动防火墙
$ systemctl start firewalld
# 重启防火墙
$ systemctl restart firewalld
# 关闭防火墙
$ systemctl stop firewalld
# 禁用防火墙(禁止开机启动) 
$ systemctl disable firewalld
# 开启6379端口(暂时开通)
$ /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

2.完成AnotherRedisDesktopManager安装后,双击图标即可运行。为了操作方便,可以在打开的窗口中点击左上角的设置按钮,将语言设置为简体中文的格式。

3.点击窗口左上角的“新建连接”按钮,在弹出的窗口中填写Redis服务信息,如下图所示。

在Redis连接配置窗口中填写对应的连接地址(Redis服务地址)、连接端口(Redis默认端口为6379)、密码(Redis认证密码)、连接名称(自定义),而用户名和分隔符选项,可以不用配置;然后,单击【确认】按钮进行连接,如果连接失败,则需要重新检查服务启动情况或者连接配置信息,如果连接成功,将进入客户端管理页面。

4.然后点击“确定”按钮,会打开如下图所示的窗口,此时表明Redis服务连接成功。同时我们会发现,在左侧菜单会出现这个一个连接。

5.使用命令行工具。在控制台左侧菜单可以点击“>_”按钮,将会打开下图所示的窗口,在这里可以使用Redis的命令进行操作。

Redis默认有16个仓库,编号从0至15。通过配置文件可以设置仓库数量,但是不超过16,并且不能自定义仓库名称。如果是基于redis-cli连接Redis服务,可以通过select命令来选择数据库。

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

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

相关文章

Redis篇--常见问题篇6--缓存一致性1(Mysql和Redis缓存一致,更新数据库删除缓存策略)

1、概述 在使用Redis作为MySQL的缓存层时,缓存一致性问题是指Redis中的缓存数据与MySQL数据库中的实际数据不一致的情况。这可能会导致读取到过期或错误的数据,从而影响系统的正确性和用户体验。 为了减轻数据库的压力,通常读操作都是先读缓…

代码加入SFTP JAVA ---(小白篇3)

在 Java 中,您可以使用 JSch(Java Secure Channel)库 来连接和操作 SFTP 服务器。以下是一个完整的示例代码,展示如何使用 Java 接入 SFTP 服务器并上传文件。 1.服务器上加入SFTP------(小白篇 1) 2.加入SFTP 用户------(小白篇…

leetcode之hot100---240搜索二维矩阵II(C++)

思路一:通过遍历主对角线上元素判断查找方向 主对角线遍历: 遍历主对角线上的每个元素(matrix[i][i]),其中 i 的范围是 [0, min(m, n) - 1]。如果目标值小于当前主对角线元素,说明目标值可能在当前元素的左…

【Nginx-4】Nginx负载均衡策略详解

在现代Web应用中,随着用户访问量的增加,单台服务器往往难以承受巨大的流量压力。为了解决这一问题,负载均衡技术应运而生。Nginx作为一款高性能的Web服务器和反向代理服务器,提供了多种负载均衡策略,能够有效地将请求分…

git remote -v(--verbose)显示你的 Git 仓库配置的远程仓库的详细信息

git remote -v 是一个 Git 命令,用于显示你的 Git 仓库配置的远程仓库的详细信息。 当你执行 git remote -v 命令时,你会看到类似以下的输出: origin https://github.com/your-username/your-repo.git (fetch) origin https://github.com…

《Java 与 Deeplearning4j:开启深度学习高效训练之旅》

在当今科技飞速发展的时代,深度学习无疑是人工智能领域的一颗璀璨明珠。Java 作为一种广泛应用的编程语言,与 Deeplearning4j 框架的结合,为开发者们开辟了一条在深度学习领域大展身手的新路径。那么,如何在 Java 中高效地使用 De…

MySQL 基础:开启数据库之旅

MySQL 基础:开启数据库之旅 在当今数字化的时代,数据扮演着至关重要的角色,而数据库管理系统则是存储、管理和操作这些数据的强大工具。MySQL 作为一款广受欢迎的开源关系型数据库管理系统,被广泛应用于各类网站、应用程序以及企业…

递归读取指定目录下的文件

序言 需要读取sftp服务器上符合指定的文件名正则的文件列表&#xff0c;目前想到的最好的办法就是递归。 我这里引入的依赖是&#xff1a; <!-- jsch-sftp连接 --><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artif…

<代码随想录> 算法训练营-2024.12.21

今日专题 &#xff1a;动态规划、打家劫舍 总结&#xff1a; 198. 打家劫舍 class Solution:def rob(self, nums: List[int]) -> int:#dp[n]max(dp[n-1],dp[n-2]nums[n])sizelen(nums)if size1:return nums[0]#n的状态只依赖n-1和n-2的状态&#xff0c;对状态进行压缩i,j…

uniapp 将base64字符串保存为图片、Word、Excel、音频、视频等文件

function blobToBase64(blob) {return new Promise((resolve, reject) > {const reader new FileReader();reader.onerror reject;reader.onload () > {if (typeof reader.result string) {// 去掉"data:..."前缀&#xff0c;只保留 Base64 部分resolve(re…

[计算机网络]唐僧的”通关文牒“NAT地址转换

1.NAT&#xff1a;唐僧的通关文牒 在古老的西游记中&#xff0c;唐僧师徒四人历经九九八十一难&#xff0c;终于取得了真经。然而&#xff0c;他们并不是一开始就获得了通关文牒&#xff0c;而是经过了重重考验&#xff0c;最终得到了国王的认可&#xff0c;才顺利通过了各个关…

音视频学习(二十四):hls协议

基本原理 HLS协议通过将视频文件切分成多个小的媒体段&#xff08;通常是10秒左右的.ts文件&#xff09;&#xff0c;并通过HTTP传输给客户端。视频播放过程中&#xff0c;客户端按顺序请求这些小段文件来逐步播放整个视频流。HLS还支持多种码率&#xff0c;以便适应不同网络条…

tcp_ack函数

tcp_ack 是 TCP/IP 协议栈中的一个函数,用于处理传入的数据包的确认(ACK)。这个函数在 Linux 内核的 TCP 实现中被用来确保可靠的数据传输。 具体来说,TCP(传输控制协议)是一种面向连接的协议,确保数据在网络中的可靠传输。ACK(确认)是 TCP 连接的一个基本元素,当一方…

WPF实现曲线数据展示【案例:震动数据分析】

wpf实现曲线数据展示&#xff0c;函数曲线展示&#xff0c;实例&#xff1a;震动数据分析为例。 如上图所示&#xff0c;如果你想实现上图中的效果&#xff0c;请详细参考我的内容&#xff0c;创作不易&#xff0c;给个赞吧。 一共有两种方式来实现&#xff0c;一种是使用第三…

【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE

大多数开发人员都同意,与 15 年前相比,PHP 是一种更加理智、更加安全和可靠的语言。PHP5早期的不良设计已让位于更好的开发生态系统,其中包括类、自动加载、更严格的类型、更理智的语法以及一大堆其他改进。安全性也没有被忽视。 register_globals一些老读者可能还记得和的…

7 家使用量子计算的公司

劳斯莱斯、Deloitte、BASF、Roche、富士通、JPMorgan和宝马是率先开展量子计算实验的部分公司。 商用量子计算的实现仍需数年时间&#xff0c;但这并未阻止世界上一些知名企业对其进行试验。在许多情况下&#xff0c;利用当下有噪声的中等规模量子&#xff08;NISQ&#xff09…

最大似然检测在通信解调中的应用

最大似然检测&#xff08;Maximum Likelihood Detection&#xff0c;MLD&#xff09;&#xff0c;也称为最大似然序列估计&#xff08;Maximum Likelihood Sequence Estimation&#xff0c;MLSE&#xff09;&#xff0c;是一种在通信系统中广泛应用的解调方法。其核心思想是在给…

JAVA服务器端发送邮件问题 Could not connect to SMTP host

写在前面 在开发过程中&#xff0c;发送邮件经过本地测试是没有问题&#xff0c;部署到服务器上后&#xff0c;发送邮件一直报 Could not connect to SMTP host : smtp.yeah.net, port: 465 解决方法 网上各种解决方案&#xff0c;都试了一遍都未能解决这个报错问题&#xf…

完整微服务设计 功能实现

我们将以一个简单的电商系统为例&#xff0c;实现微服务架构&#xff0c;逐步用Java代码详细实现每个模块&#xff0c;并配合注释帮助小白理解。在这个实现中&#xff0c;我们使用以下工具和框架&#xff1a; Spring Boot&#xff1a;用于构建微服务。Spring Cloud&#xff1a…

Android -- 双屏异显之方法二

Android – 双屏异显之方法二: DisplayManager PS: 1. 使用改方法主板需连接至少两个输出显示屏&#xff1b; 2. 副屏内部实现与MediaRouter下一样&#xff1b;使用方法 # 主屏activity内&#xff1a; private SecondDisplay secondDisplay;private void dualScreen3288() {D…