Tensorflow-gpu保姆级安装教程(Win11, Anaconda3,Python3.9)

Tensorflow-gpu 保姆级安装教程(Win11, Anaconda3,Python3.9)

    • 前言
    • Tensorflow-gpu版本安装的准备工作
    • (一)、查看电脑的显卡:
    • (二) 、Anaconda的安装
    • (三)、cuda下载和安装
    • (四)、cudnn下载安装
    • (五)、配置环境变量
    • (六)、创建 tensorflow 环境
    • (七)、测试 Tensorflow-gpu 是否安装成功
    • 卸载重装

前言

CPU版本和GPU版本的区别主要在于运行速度GPU版本运行速度更快,所以如果电脑显卡支持cuda,推荐安装gpu版本的。

  • CPU版本,无需额外准备,CPU版本一般电脑都可以安装,无需额外准备显卡的内容,(如果安装CPU版本请参考网上其他教程!

  • GPU版本,需要提前下载 cudacuDNN。(本文为GPU版本安装教程。

Tensorflow-gpu版本安装的准备工作

重要的事说三遍:

安装前 一定 要查看自己电脑的环境配置,然后查询Tensorflow-gpuPythoncuda cuDNN 版本关系,要 一 一对应

安装前 一定 要查看自己电脑的环境配置,然后查询Tensorflow-gpuPythoncuda cuDNN 版本关系,要 一 一对应

安装前 一定 要查看自己电脑的环境配置,然后查询Tensorflow-gpuPythoncuda cuDNN 版本关系,要 一 一对应

Tensorflow-gpu 与 Python、 cuda、cuDNN 版本关系查询

在这里插入图片描述

我的安装环境为:

操作系统显卡Python
win11NVIDIA GeForce RTX20503.9.13

我的tensorflow-gpu 安装版本为:

tensorflow-gpucudacuDNN
tensorflow-gpu 2.7.0cuda 11.5.2cuDNN 8.3.2

注: 我这个对应关系是在网上查询别人安装成功的案例,不要自己随意组合,不然很容易安装失败,或者就按官网查询的组合安装,安装过程是一样的!

(一)、查看电脑的显卡:

1)、右键此电脑→右键选管理设备管理器显示适配器
主要看独显:GeForce RTX 2050

在这里插入图片描述

可以看到点击出现了NVIDIA GeForce ...,即你的电脑显卡型号。

  • 如果有出现,那就表示可以使用Tensorflow-gpu版本,如果没有的就只能老老实实安装CPU版咯。
  • 然后可以去NIVIDIA官网查询一下自己电脑显卡的算力:https://developer.nvidia.com/cuda-gpus,建议算力>=3.5安装。

在这里插入图片描述

我的型号没有查到,NVIDIA近几年显卡的算力一般是够的。

2)、右键显卡属性驱动程序,可以查看显卡的驱动程序:

在这里插入图片描述

3)、查看GPU驱动版本,也就是我们“CUDA Version”,Windows 11 版本中一般是12.0版本,键盘上同时按win +r,输入cmd,打开命令窗口,在命令窗口输入:

nvidia-smi

在这里插入图片描述

(二) 、Anaconda的安装

安装tensorflow提前安装好Anaconda。这里我也不重点介绍了,我之前也重点详细地写过相关文章:
Anaconda安装-超详细版(2023)

Anaconda安装成功后,进入下面tensorflow的安装!

后面tensorflow的安装可成三步:

  1. cuda的安装
  2. cuDNN的神经网络加速库安装
  3. 配置环境变量

(三)、cuda下载和安装

下载cudacuDNN。在官网上下载对应的cudacuDNN,版本可以低于上面查到的CUDA版本但不能高于电脑支持的版本。

  • cuda下载地址:CUDA Toolkit Archive | NVIDIA Developer;
  • cudnn下载地址:cuDNN Archive | NVIDIA Developer。

1)、下载:

我下载的是CUDA Toolkit 11.5.2, 点击前面的 CUDA Toolkit 11.5.2
在这里插入图片描述

选择相应的系统、版本等选项,点击Download下载:
在这里插入图片描述
2)、安装

a、 双击安装包,此时会出现一个提示框,让你选择临时解压位置(该位置的内容在你安装完cuda之后会自动删除),这里默认即可,点击ok。

在这里插入图片描述

b、点击同意并继续:

在这里插入图片描述

c、完成上一步后,选择自定义,然后点下一步:

在这里插入图片描述

d、完成上一步,这里CUDA一定要勾选上,下面的可选可不选,对后续没有影响。

  • 在组件CUDA一栏中,取消勾选Visual Studio Integration(因为我们并没有使用Visual Stduio环境,即使勾选上了也会安装失败)

在这里插入图片描述

  • 在Driver components一栏比较Display Driver的新版本和当前版本的信息。
    • 若当前版本高于新版本,则取消勾选Display Driver;
    • 若当前版本低于新版本,则保留默认安装信息即可,否则电脑会死机或者卡顿,甚至可能蓝屏。!!!

在这里插入图片描述

e、这个安装位置可以自己改。要截图记录一下你装到哪里了,后面要用到!我选择了默认安装位置。

在这里插入图片描述

f、正在安装

在这里插入图片描述

g、安装成功!

在这里插入图片描述

点击关闭即可!

在这里插入图片描述

检查环境变量

完成安装后,检查一下环境变量是否存在,一般安装完成会自动配置好环境变量,若是没有,则需手动配置,具体过程如下。

  1. 打开 电脑属性,找到 高级系统设置,选择 环境变量 打开。

  2. 查看是否有以下系统变量,没有则需要自行添加,对应图片上的名称和值,配置你电脑CUDA安装所在的位置。

在这里插入图片描述

  1. 打开系统变量的Path,查看是否有一下两条内容,若没有则需自行添加,一定要配置对安装的位置。

在这里插入图片描述

配置好环境变量后,我们检查下CUDA是否安装成功。

  1. 打开cmd,输入以下命令查看CUDA是否安装成功(二选一)
    如果不能显示以下信息,则说明安装失败。
nvcc -V
nvcc --version

在这里插入图片描述

  • 还可以查看CUDA 设置的环境变量。
set cuda

在这里插入图片描述

  • 我们还可以搜索CUDA 的安装目录,找到“nvcc.exe”文件。

在这里插入图片描述

CUDA的安装就结束了,接下来下载解压cuDNN文件。

(四)、cudnn下载安装

CUDA并不是实现GPU的神经网络加速库,如果希望针对的是神经网络进行加速,我们还需要安装cuDNN神经网络加速库。

  • cuDNN并非是应用程序,而是几个文件包,下载后把它复制到CUDA 的目录下即可。
    下载地址:cuDNN Archive | NVIDIA Developer。

  • 第一次单击下载时,会让你先注册登录,然后再进行下载,注册过程认真填写内容就没问题,此处略过,接下来进入下载环节。

1)、下载:

下载对应版本的cuDNN。这里选择的是cuDNN v8.3.2 for CUDA 11.5

在这里插入图片描述

  1. 、下载解压好安装包后,我们解压可以看到有四个文件:
    在这里插入图片描述

3)、教程的这一步要格外注意

  • 要将cudnn文件中的对应文件夹下的所有文件复制 到对应的安装目录中,
  • 不是cudnn文件中的文件夹复制过去。eg:复制的不是cudnn中的bin文件夹,而是bin文件夹下的所有文件。(有重复的文件是正常的,覆盖掉就好!)

在这里插入图片描述

  1. 打开cudnn文件中的bin文件夹,将该文件夹中所有的 文件 复制粘贴CUDA\v11.5\bin文件夹中:

在这里插入图片描述

  1. 打开cudnn文件中的include文件夹,将该文件夹中所有的 文件 复制粘贴CUDA\v11.5\include文件夹中:

在这里插入图片描述

  1. 打开cudnn文件中的lib文件夹,将该文件夹中所有的 文件 复制粘贴CUDA\v11.5\lib\x64文件夹中:

在这里插入图片描述

  1. 打开cudnn文件中的剩下的文件复制粘贴CUDA\v11.5文件夹中:

在这里插入图片描述
cuDNN其实就是CUDA的一个补丁而已,专为深度学习运算进行优化的,然后我们再添加环境变量!继续往下走。

(五)、配置环境变量

  1. 、打开系统变量的Path,在系统变量的path路径下添加以下路径:(具体要根据自己的安装路径下做调整)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\lib\x64

添加好后是这样的:

在这里插入图片描述

2)、配置好环境后,我们需要验证环境变量是否配置成功:

打开cmd,进入自己CUDA的安装下路径...\CUDA\v11.5\extras\demo_suite:,我是默认路径,所以我的是:

cd \Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\extras\demo_suite

然后分别执行以下两个命令:

.\bandwidthTest.exe
.\deviceQuery.exe

在这里插入图片描述
在这里插入图片描述

如果Result都为PASS的话则配置成功!

3)、都安装好之后,我们可以继续输入nvidia-smi查看CUDA的信息,然后根据安装版本的信息再去实现其他的库(环境)安装和使用!

nvidia-smi

在这里插入图片描述

如图所示,可以看到驱动的版本是527.41;最高支持的CUDA版本是12.0版本。

(六)、创建 tensorflow 环境

我这里是使用Anaconda(如果选择这一步,就不需要额外下载python,以及各种常用工具包,它会打包下载好)

1)、打开anaconda prompt

在这里插入图片描述

2)、创建tensorflow环境,输入命令:conda create -n tensorflow python=3.9,表示创建一个名字为tensorflow的环境,这个环境用的python版本是3.9版本的,如果默认创建,会在C盘

w11下载anaconda在d盘,新建的虚拟环境总是在c盘怎么解决

conda create -n tensorflow python=3.9

在这里插入图片描述

3)、创建成功后,输入命令:conda env list,可以看到tensorflow环境已经创建,星号为当前所在环境(基础环境base)。

conda env list

在这里插入图片描述

4)、进入环境,输入命令:activate tensorflow,就可以进入tensorflow环境中

conda activate tensorflow

在这里插入图片描述

如果要退出环境,输入:

conda deactivate

5)、因为我的conda环境在D盘中,所以将路径改了以下。如果anaconda安装的时候是默认路径,这一步不需要。

d:
cd \WorkSoftware\Install\Anaconda3\envs\tensorflow\

在这里插入图片描述

6)、 安装指定版本的tensorflow-gpu,,我安装的是2.7.0,根据你自己的配套版本安装,输入命令:

pip install tensorflow-gpu==2.7.0 -i  https://pypi.mirrors.ustc.edu.cn/simple  

在这里插入图片描述
无报错结束应该是装好了。

7)、打开python环境,导入tensorflow包进行测试 ,查看tensorflow的版本信息, 输入命令:

import tensorflow as tf
  • 如果导入包有以下报错(没有报错请忽略!):
(tensorflow) C:\Users\Rmzh>python
Python 3.9.16 | packaged by conda-forge | (main, Feb  1 2023, 21:28:38) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\__init__.py", line 41, in <module>from tensorflow.python.tools import module_util as _module_utilFile "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\__init__.py", line 41, in <module>from tensorflow.python.eager import contextFile "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\eager\context.py", line 33, in <module>from tensorflow.core.framework import function_pb2File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\function_pb2.py", line 16, in <module>from tensorflow.core.framework import attr_value_pb2 as tensorflow_dot_core_dot_framework_dot_attr__value__pb2File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\attr_value_pb2.py", line 16, in <module>from tensorflow.core.framework import tensor_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__pb2File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\tensor_pb2.py", line 16, in <module>from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\resource_handle_pb2.py", line 16, in <module>from tensorflow.core.framework import tensor_shape_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\tensor_shape_pb2.py", line 36, in <module>_descriptor.FieldDescriptor(File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\google\protobuf\descriptor.py", line 561, in __new___message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.If you cannot immediately regenerate your protos, some other possible workarounds are:1. Downgrade the protobuf package to 3.20.x or lower.2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
  • 解决上述报错,输入exit()退出python环境导入以下包:
pip install protobuf==3.19.0 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

然后重新进入python 环境,查看tensorflow的版本信息, 输入命令:

import tensorflow as tf
tf.__version__

在这里插入图片描述

退出tensorflow环境:

conda deactivate

在这里插入图片描述
同时,conda控制台是默认打开base环境的,如果想管理这一设置

conda config --set auto_activate_base false / true

(七)、测试 Tensorflow-gpu 是否安装成功

  1. 打开Anaconda,选择tensorflow环境,打开spyder,第一次打开需要安装Spyder,直接点下方的install即可。

在这里插入图片描述

  1. 输入以下测试代码:
import tensorflow as tfprint(tf.__version__)
print(tf.test.gpu_device_name())
print(tf.config.experimental.set_visible_devices)
print('GPU:', tf.config.list_physical_devices('GPU'))
print('CPU:', tf.config.list_physical_devices(device_type='CPU'))
print(tf.config.list_physical_devices('GPU'))
print(tf.test.is_gpu_available())
# 输出可用的GPU数量
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
# 查询GPU设备

在这里插入图片描述

  • 出现了当前环境tensorflow的版本以及一些其他信息,我的版本是2.7.0
  • 如果下面出现了True, 那就表明我们的tensorflow-gpu 已经成功的安装好并且能够正常使用了!
  1. 下面来测试一下GPU的运算速度吧!
import tensorflow as tf
import timeit#指定在cpu上运行
def cpu_run():with tf.device('/cpu:0'):cpu_a = tf.random.normal([10000, 1000])cpu_b = tf.random.normal([1000, 2000])c = tf.matmul(cpu_a, cpu_b)return c#指定在gpu上运行 
def gpu_run():with tf.device('/gpu:0'):gpu_a = tf.random.normal([10000, 1000])gpu_b = tf.random.normal([1000, 2000])c = tf.matmul(gpu_a, gpu_b)return ccpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print("cpu:", cpu_time, "  gpu:", gpu_time)

在这里插入图片描述

  • 可以看到gpu的速度比cpu还是要快上不少的!
  • 对于机器学习中神经网络模型的训练来说,可以大幅度加快我们的训练进程帮我们节约许多时间,还是十分不错的!

卸载重装

如果安装出错可以卸载重装:
tensorflow-gpu卸载

注:个人安装过程,仅供学习参考,如有不足,欢迎指正!

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

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

相关文章

数据结构之【泛型】

泛型&#xff1a;定义阶段不明确具体类型&#xff0c;产生对象时明确具体类型。 //Object是Java中的最高参数统一化&#xff0c;能够接受所有的引用类型&#xff1b; //有了包装类的自动拆装箱之后&#xff0c;Object还能够接收基本类型数值&#xff08;自动装箱&#xff09; …

常见限流算法学习

文章目录 常见限流算法学习前言限流算法基本介绍固定窗口计数器限流算法计数器限流算法相关介绍计数器限流算法的实现&#xff08;基于共享变量&#xff09;计数器限流算法的实现&#xff08;基于Redis&#xff09; 滑动窗口计数器算法滑动时间窗口算法相关介绍介绍滑动时间窗口…

Python批量统计pdf中“中文”字符的个数

之前的文章提供了批量识别pdf中英文的方法,详见【python爬虫】批量识别pdf中的英文,自动翻译成中文上。以及自动pdf英文转中文文档,详见【python爬虫】批量识别pdf中的英文,自动翻译成中文下。以及Python统计pdf中英文单词的个数。    本文实现Python统计pdf中中文字符的…

SpringBoot项目(百度AI整合)——如何在Springboot中使用文字识别OCR入门

前言 前言&#xff1a;本系列博客尝试结合官网案例&#xff0c;阐述百度 AI 开放平台里的组件使用方式&#xff0c;核心是如何在spring项目中快速上手应用。 本文介绍如何在Springboot中使用百度AI的文字识别OCR 其他相关的使用百度AI的文章列表如下&#xff1a; 如何在Spri…

【iOS逆向与安全】插件开发之某音App直播间自动发666

1.目标 由于看直播的时候主播叫我发 666&#xff0c;支持他&#xff0c;我肯定支持他呀&#xff0c;就一直发&#xff0c;可是后来发现太浪费时间了&#xff0c;能不能做一个直播间自动发 666 呢&#xff1f;于是就花了几分钟做了一个。 2.操作环境 越狱iPhone一台 frida ma…

“构建完善的用户认证与数据交互系统“

目录 引言1.ElementUI完成登录注册1. 登录页面设计与实现2. 注册页面设计与实现 2.axios之get请求3.axios之post请求4.跨域问题的解决方案5.总结 引言 在现代Web应用程序开发中&#xff0c;用户认证和数据交互是至关重要的功能。本文将介绍如何使用ElementUI、axios和解决跨域…

【C++】STL详解(八)—— priority_queue的使用及模拟实现仿函数

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】STL…

11.外观模式

外观模式&#xff08;Facade&#xff09;&#xff0c;为子系统中的一组接口提供一个一致的界面&#xff0c;此模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用。 UML 测试代码 #include <iostream> using namespace std;class SubSystemOne { pu…

Kafka 源码分析——Producer

文章目录 前言Producer 整体流程Producer 初始化Producer 发送流程执行拦截器逻辑获取集群元数据序列化选择分区消息累加进缓存消息发送 Producer缓冲区Producer 参数调优 前言 在 Kafka 中, 把产生消息的一方称为 Producer 即 生产者&#xff0c;它是 Kafka 的核心组件之一&a…

Spring面试题20:Spring怎样开启注解装配?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring怎样开启注解装配? 要在Spring中开启注解装配,需要进行以下几个步骤: 添加必要的依赖:在项目的构建工具(如Maven或Gradle)配置文件中…

WebGL 选中一个表面

目录 选中一个表面 示例程序&#xff08;PickFace.js&#xff09; 代码详解 gl.readPixels()见126行效果 gl.UNSIGNED_BYTE注意点 示例效果 选中一个表面 ​​​​​​​WebGL 选中物体_山楂树の的博客-CSDN博客可以使用同样的方法来选中物体的某一个表面。这一节在Pi…

苹果手表 Series 6 拆解

步骤 1 苹果手表 Series 6 拆解 Series 6&#xff08;右&#xff09;与具有一年历史的姐妹&#xff08;左&#xff09;的外部比较仅显示出细微的差异&#xff0c;但这就是拆卸的目的。我们已经知道这些细节&#xff1a; LTPO OLED Retina 显示屏针对常亮功能进行了优化——这次…

亚马逊 CodeWhisperer 初体验

1、CodeWhisperer 介绍 CodeWhisperer 是亚马逊出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。类似 Cursor 和 Github Copilot 编码工具。 官网&#xff1a;AI 代码生成器 - Amazon CodeWhisperer - AWS 在编写代码时&#xff0c;它会自动根据您现…

【深度学习实验】前馈神经网络(三):自定义两层前馈神经网络(激活函数logistic、线性层算子Linear)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 构建数据集 2. 激活函数logistic 3. 线性层算子 Linear 4. 两层的前馈神经网络MLP 5. 模型训练 一、实验介绍 本实验实现了一个简单的两层前馈神经网络 激活函数…

JavaScript(WebAPI)

目录 一.WebAPI 二.DOM 1.选中页面元素 2.事件 三.操作元素 获取修改元素内容 获取/修改表单元素属性 value type 获取/修改样式属性 1.修改内联样式 2.修改元素应用的CSS类名 四.操作节点 1.新增元素 2.删除元素 五.小结 六.案例 1.网页版本的猜数字 2.表白…

Python | 为FastAPI后端服务添加API Key认证(分别基于路径传参和header两种方式且swagger文档友好支持)

文章目录 01 前言02 路径传参方式添加API Key2.1 完整代码2.2 请求示例2.3 swagger文档测试 03 请求头Header方式传入API Key&#xff08;推荐&#xff09;3.1 完整代码3.2 请求示例3.3 swagger文档测试 01 前言 FastAPI&#xff0c;如其名所示&#xff0c;是一个极为高效的框…

CSS3有哪些新特性

CSS3 引入了许多新特性&#xff0c;以增强样式设计和页面布局的能力&#xff0c;提供更多的视觉效果和交互性。以下是一些 CSS3 中的新特性&#xff1a; 圆角边框&#xff08;Border Radius&#xff09;&#xff1a;圆角的边框&#xff0c;而不是传统的方形边框。 <!DOCTY…

Java面试被问了几个简单的问题,却回答的不是很好

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有需要我的支持&#xff0c;请私信或评论留言&#xff01; 前言 前几天参加了…

解决0-1背包问题(方案二):一维dp数组(滚动数组)

往期文章&#xff1a;解决0-1背包问题&#xff08;方案一&#xff09;:二维dp数组_呵呵哒(&#xffe3;▽&#xffe3;)"的博客-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/133207350?spm1001.2014.3001.5501 >>探索一维dp数组和二维dp数组的…

深入学习 Redis Cluster - 基于 Docker、DockerCompose 搭建 Redis 集群,处理故障、扩容方案

目录 一、基于 Docker、DockerCompose 搭建 Redis 集群 1.1、前言 1.2、编写 shell 脚本 1.3、执行 shell 脚本&#xff0c;创建集群配置文件 1.4、编写 docker-compose.yml 文件 1.5、启动容器 1.6、构建集群 1.7、使用集群 1.8、如果集群中&#xff0c;有节点挂了&am…