redis的下载和安装详解

一、下载redis安装包

进入redis官网查看当前稳定版本:

https://redis.io/download/

在这里插入图片描述

发现此时的稳定版本是6.2.4

此时可以去这个网站下载6.2.4稳定版本的tar包。
在这里插入图片描述

暂时不考虑不在windows上使用redis,那样将无法发挥redis的性能

二、上传tar包到虚拟机并解压

2.1 新建存放目录并上传tar包
# 进入/usr/local目录
cd /usr/local/
# 新建soft目录存放软件
mkdir soft
# 进入刚新建的soft目录下
cd soft

完成上述步骤使用finalshell上传redis安装包到/usr/local/soft目录下:
在这里插入图片描述

2.2 解压tar包
tar -zxvf redis-6.2.4.tar.gz

三、安装编译环境并安装redis

3.1 下载安装最新版的gcc编译器

1)安装C 语言的编译环境

# -y 对所有提问都说yes
yum -y install gcc

2)查看gcc版本

gcc --version
3.2 编译redis
# 进入redis安装目录
cd /usr/local/soft/redis-6.2.4
# 执行编译操作
make

如果没有安装gcc直接进行make会报错:

# 表示没有这个文件
Jemalloc/jemalloc.h

解决方案:

  • 安装gcc
  • 运行make distclean
  • 然后再进行make
3.2 安装redis

编译完成之后,可以执行安装命令。

make install

安装完成之后/usr/local/bin目录下将会多出一些命令:
在这里插入图片描述

命令解析:

  • redis-benchmark:测试电脑性能的
  • redis-check-aof -> redis-server:检查修复aof文件的,本质是执行了redis-server文件
  • redis-check-rdb -> redis-server:检查修复rdb文件的,本质是执行了redis-server文件
  • redis-cliredis自带的客户端,可以使用它来连接redis服务端。(这个自带的通常不会使用)
  • redis-sentinelredis哨兵,用于监控redis集群中Master状态的工具。
  • redis-server:启动服务

四、启动redis

4.1 前台启动
# 这个命令已经在环境变量当中,可以在任何位置使用它来启动redis
redis-server

在这里插入图片描述

命令行窗口不能关闭,否则服务器停止。

4.2 后台启动

1)在/root目录下创建myredis目录

cd /root
mkdir myredis
cd /myredis

2)拷贝一份redis.conf到myredis目录

cp /usr/local/soft/redis-6.2.4/redis.conf /root/myredis

3)修改配置文件,配置让服务在后台启动

vim redis.conf

247行把daemonize no改成yes
在这里插入图片描述

配置完成后Esc键退出插入状态,:wq保存并退出。

4)使用新的配置文件启动redis

redis-server /root/myredis/redis.conf

这样服务启动后就不会占用全屏窗口。

不放心的话也可以用下列命令查看redis进程是否在运行:

ps -ef | grep redis

五、关闭redis

5.1 单实例关闭
redis-cli shutdown

也可以进入终端后关闭当前实例:

# 先进入redis客户端终端
redis-cli
# 在终端里关闭redis
shutdown
5.2 多实例关闭
redis-cli -p 6379 shutdown

多实例时关闭时需要指定端口关闭

六、docker上部署redis

容器化部署已经是越来越主流的方式,比起在Linux上直接安装redis要更加的方便和快捷。

6.1 在dockerHub上搜索redis

在这里插入图片描述

这里会有redis镜像的详细使用说明,认准绿色部分的官方镜像即可。

overview中就是如何部署redis容器的文档,右边黑框中的命令就是拉取redis镜像的命令。

6.2 创建本机存放redis配置和数据目录
# 创建 redis 配置存放目录
mkdir -p /usr/local/docker/redis/conf
# 创建 redis 数据存放目录
mkdir -p /usr/local/docker/redis/data# 给刚创建的两个目录授权
chmod 777 /usr/local/docker/redis/conf
chmod 777 /usr/local/docker/redis/data

之所以这里创建目录,是想使用docker数据卷挂载的第二种方式,直接使用磁盘挂载。

意思就是不使用数据卷,直接把本机的某个目录和docker容器中的某个目录进行关联。

这样只需要在本机上操作者两个目录中的内容,就可以直接同步修改docker容器中对应的目录中的内容。

使用磁盘挂载的话,目录需要自己维护。而使用数据卷挂载,docker会自动维护目录,但是目录比较深。

如果对数据卷不太了解,可以看我docker专栏下关于数据卷的介绍

6.3 运行容器
# 启动 redis 容器
docker run -d -p 6379:6379 --name myRedis --restart=always -v /usr/local/docker/redis/data:/data -v /usr/local/docker/redis/conf/redis.conf:/etc/redis redisredis-server /etc/redis/redis.conf

docker镜像中的redis默认都是没有配置文件的,也就是说/etc/redis目录下是空的
需要自己准备一个配置文件,放在/usr/local/docker/redis/conf/目录下

选项解析:

-d:后台运行

-p:将宿主机端口和容器端口相关联,是指可以用宿主机的6379端口访问容器的6379端口

--name:启动镜像后,生成的容器的名称

--restart:配置重启策略是always

这样如果容器redis无论什么情况停止了,docker将自动重新启动redis容器

-v /usr/local/docker/redis/data:/data :挂载redis的数据目录

-v /usr/local/docker/redis/conf/redis.conf:/etc/redis :挂载redis的配置文件目录

redis:需要启动的用来创建容器的镜像名称

6.4 停止运行容器
docker stop myRedis
6.5 停止后重新运行容器
docker start myRedis
6.6 重启容器
docker restart myRedis
6.7 删除容器
# -f 强制移除正在运行的容器(不写-f只能移除不在运行的容器)
docker rm -f myRedis

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

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

相关文章

如何使用 Jenkins 实现 CI/CD 流水线:从零开始搭建自动化部署流程

如何使用 Jenkins 实现 CI/CD 流水线:从零开始搭建自动化部署流程 在软件开发过程中,持续集成(CI)和持续交付(CD)已经成为现代开发和运维的标准实践。随着代码的迭代越来越频繁,传统的手动部署方式不仅低效,而且容易出错。为了提高开发效率和代码质量,Jenkins作为一款…

Python基于Django的网络课程在线学习平台【附源码】

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

Pytorch为什么 nn.CrossEntropyLoss = LogSoftmax + nn.NLLLoss?

为什么 nn.CrossEntropyLoss LogSoftmax nn.NLLLoss? 在使用 PyTorch 时,我们经常听说 nn.CrossEntropyLoss 是 LogSoftmax 和 nn.NLLLoss 的组合。这句话听起来简单,但背后到底是怎么回事?为什么这两个分开的功能加起来就等于…

rabbitmq 延时队列

要使用 RabbitMQ Delayed Message Plugin 实现延时队列,首先需要确保插件已安装并启用。以下是实现延时队列的步骤和代码示例。 1. 安装 RabbitMQ Delayed Message Plugin 首先,确保你的 RabbitMQ 安装了 rabbitmq-delayed-message-exchange 插件。你可…

在 Vue 单文件组件(SFC)中,标签的显式关闭与隐式关闭有着重要的区别

一、显式关闭标签 1、定义&#xff1a; 所有的 HTML 标签都必须有一个对应的结束标签。 自闭合标签也必须使用 / 来关闭。 <template> <div> <p>这是一个段落</p> <img src"image.png"…

第四届大数据、区块链与经济管理国际学术会议

重要信息 官网&#xff1a;www.icbbem.com 时间&#xff1a;2025年3月14-16日 地点&#xff1a;中国-武汉 &#xff08;线上召开&#xff09; 简介 第四届大数据、区块链与经济管理国际学术会议(ICBBEM 2025)&#xff0c;将于2025年3月14-16日在中国湖北省武汉市召开。…

每日十个计算机专有名词 (7)

Metasploit 词源&#xff1a;Meta&#xff08;超越&#xff0c;超出&#xff09; exploit&#xff08;漏洞利用&#xff09; Metasploit 是一个安全测试框架&#xff0c;用来帮助安全专家&#xff08;也叫渗透测试人员&#xff09;发现和利用计算机系统中的漏洞。你可以把它想…

使用Docker Compose部署 MySQL8

MySQL 8 是一个功能强大的关系型数据库管理系统,而 Docker 则是一个流行的容器化平台。结合使用它们可以极大地简化 MySQL 8 的部署过程,并且确保开发环境和生产环境的一致性。 安装 Docker 和 Docker Compose 首先,确保你的机器上已经安装了 Docker 和 Docker Compose。 …

mamba_ssm和causal-conv1d详细安装教程

1.前言 Mamba是近年来在深度学习领域出现的一种新型结构&#xff0c;特别是在处理长序列数据方面表现优异。在本文中&#xff0c;我将介绍如何在 Linux 系统上安装并配置 mamba_ssm 虚拟环境。由于官方指定mamba_ssm适用于 PyTorch 版本高于 1.12 且 CUDA 版本大于 11.6 的环境…

c++中初始化列表的使用

在 C 中&#xff0c;初始化列表是在构造函数的定义中&#xff0c;用于对类的成员变量进行初始化的一种方式。它紧跟在构造函数的参数列表之后&#xff0c;使用冒号 : 分隔&#xff0c;各成员变量的初始化用逗号 , 分隔。下面详细介绍初始化列表及其参数的含义。 基本语法 clas…

《Linux系统编程篇》System V信号量实现生产者与消费者问题(Linux 进程间通信(IPC))——基础篇(拓展思维)

文章目录 &#x1f4da; **生产者-消费者问题**&#x1f511; **问题分析**&#x1f6e0;️ **详细实现&#xff1a;生产者-消费者****步骤 1&#xff1a;定义信号量和缓冲区****步骤 2&#xff1a;创建信号量****步骤 3&#xff1a;生产者进程****步骤 4&#xff1a;消费者进程…

利用 Python 爬虫进行跨境电商数据采集

1 引言2 代理IP的优势3 获取代理IP账号4 爬取实战案例---&#xff08;某电商网站爬取&#xff09;4.1 网站分析4.2 编写代码4.3 优化代码 5 总结 1 引言 在数字化时代&#xff0c;数据作为核心资源蕴含重要价值&#xff0c;网络爬虫成为企业洞察市场趋势、学术研究探索未知领域…

HONOR荣耀MagicBook 15 2021款 独显(BOD-WXX9,BDR-WFH9HN)原厂Win10系统

适用型号&#xff1a;【BOD-WXX9】 MagicBook 15 2021款 i7 独显 MX450 16GB512GB (BDR-WFE9HN) MagicBook 15 2021款 i5 独显 MX450 16GB512GB (BDR-WFH9HN) MagicBook 15 2021款 i5 集显 16GB512GB (BDR-WFH9HN) 链接&#xff1a;https://pan.baidu.com/s/1S6L57ADS18fnJZ1…

c语言实现三子棋小游戏(涉及二维数组、函数、循环、常量、动态取地址等知识点)

使用C语言实现一个三子棋小游戏 涉及知识点&#xff1a;二维数组、自定义函数、自带函数库、循环、常量、动态取地址等等 一些细节点&#xff1a; 1、引入自定义头文件&#xff0c;需要用""双引号包裹文件名&#xff0c;目的是为了和官方头文件的<>区分开。…

C语言数据类型及其使用 (带示例)

目录 1. 基本数据类型 整型 浮点型 字符型 2. 构造数据类型 数组 结构体 联合体&#xff08;共用体&#xff09; 枚举类型 3. 指针类型 4. 空类型 在 C 语言中&#xff0c;数据类型是非常重要的概念&#xff0c;它决定了数据在内存中的存储方式、占用空间大小以及可…

Web自动化之Selenium添加网站Cookies实现免登录

在使用Selenium进行Web自动化时&#xff0c;添加网站Cookies是实现免登录的一种高效方法。通过模拟浏览器行为&#xff0c;我们可以将已登录状态的Cookies存储起来&#xff0c;并在下次自动化测试或爬虫任务中直接加载这些Cookies&#xff0c;从而跳过登录步骤。 Cookies简介 …

NAT 技术:网络中的 “地址魔术师”

目录 一、性能瓶颈&#xff1a;NAT 的 “阿喀琉斯之踵” &#xff08;一&#xff09;数据包处理延迟 &#xff08;二&#xff09;高并发下的性能损耗 二、应用兼容性&#xff1a;NAT 带来的 “适配难题” &#xff08;一&#xff09;端到端通信的困境 &#xff08;二&…

php序列化与反序列化

文章目录 基础知识魔术方法&#xff1a;在序列化和反序列化过程中自动调用的方法什么是 __destruct() 方法&#xff1f;何时触发 __destruct() 方法&#xff1f;用途&#xff1a;语法示例&#xff1a; 反序列化漏洞利用前提条件一些绕过策略绕过__wakeup函数绕过正则匹配绕过相…

docker 占用系统空间太大了,整体迁移到挂载的其他磁盘|【当前普通用户使用docker时,无法指定镜像、容器安装位置【无法指定】】

文章目录 前言【核心步骤皆为 大模型生成的方案】总结步骤应该是&#xff1a;详细步骤如下1. **停止 Docker 服务**2. **备份原数据&#xff08;防止迁移失败&#xff09;**3. **迁移数据到新磁盘**4. **修改 Docker 配置文件**5. **重启 Docker 服务**6. **验证容器和镜像**7.…

设计后端返回给前端的返回体

目录 1、为什么要设计返回体&#xff1f; 2、返回体包含哪些内容&#xff08;如何设计&#xff09;&#xff1f; 举例 3、总结 1、为什么要设计返回体&#xff1f; 在设计后端返回给前端的返回体时&#xff0c;通常需要遵循一定的规范&#xff0c;以确保前后端交互的清晰性…