基于 Vagrant 手动部署多个 Redis Server

vagrant,redis,server · 浏览次数 : 29

小编点评

本文介绍了如何在 Windows 10 虚拟机中使用 Vagrant 和 VirtualBox 配置和管理 Redis 虚拟机。首先,通过编写 Vagrantfile 文件定义虚拟机的配置,包括设置虚拟机数量、网络配置和内存大小。接着,使用本地 CentOS 7 盒子加速虚拟机的创建过程。然后,在虚拟机中配置 YUM 源,更换为阿里云的镜像源以提高软件包下载速度。最后,安装并配置 Redis。 1. 本文首先描述了如何编写 Vagrantfile 文件,以便在 Windows 10 虚拟机中使用 Vagrant 和 VirtualBox 管理 Redis 虚拟机。 2. 文章提到使用 local_centos7 作为本地盒子,这样可以避免每次创建虚拟机时都从网络下载,从而节省时间和带宽。 3. 在创建虚拟机之前,文章指导读者如何添加 local_centos7 盒子,并检查盒子是否创建成功。 4. 文章接下来讲解了如何启动虚拟机,并通过 vagrant ssh 进入 redis1 虚拟机。 5. 为了提高软件包下载速度,文章建议更换 YUM 源为阿里云的镜像源,并提供了下载和配置文件的方法。 6. 最后,文章详细说明了如何安装和配置 Redis,包括创建安装目录、下载源码、编译、安装和测试 Redis。 综上所述,本文详细介绍了在 Windows 10 虚拟机中配置和管理 Redis 虚拟机的过程,包括虚拟机的创建、网络配置、YUM 源更换以及 Redis 的安装和配置。

正文

环境准备

  • 宿主机环境:Windows 10
  • 虚拟机环境:Vagrant + VirtualBox

Vagrantfile 配置

首先,我们需要编写一个 Vagrantfile 来定义我们的虚拟机配置。假设已经在 D:\Vagrant\redis 目录下创建了一个 Vagrantfile,其内容如下:

Vagrant.configure("2") do |config|
  config.vm.box = "local_centos7"

  [ "redis1", "redis2", "redis3" ].each_with_index do |name, index|
    config.vm.define name do |node|
      node.vm.network "private_network", ip: "192.168.50.#{index + 101}"
    end
  end

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "1024"
  end
end

这里准备创建了 redis1redis3 的虚拟机,以 redis1 为实操,操作熟练后,其他虚拟机也是一样的。

为什么使用 local_centos7 而不是 centos/7

  • local_centos7 是我们本地已经下载好的 CentOS 7 盒子,使用本地盒子可以避免每次创建虚拟机时都从网络下载,节省时间和带宽。

  • CentOS 7 盒子从官网下载有时是非常缓慢的,这里我提供了咱们国内的下载链接(点这里跳转,提取码:2024

创建本地盒子

在终端(cmd)中进入 Vagrantfile 所在目录 D:\Vagrant\redis,然后运行以下命令来添加本地盒子:

vagrant box add local_centos7 <CentOS-7...box所在路径(文件拖拽到 cmd)>

检查盒子是否创建成功

  • 查看终端的输出提示,如果没有报错,说明盒子添加成功。

  • 使用以下命令列出所有安装的盒子,查看是否存在 local_centos7

    vagrant box list
    

截图_20240716133616

上述 Vagrantfile 如已创建(假设所在目录为:D:\Vagrant\redis),并且 local_centos7 已创建,就已经成功一半了。

启动虚拟机

Vagrantfile 所在目录的终端中运行以下命令启动虚拟机:

vagrant up

进入 redis1 虚拟机

启动完成后,通过以下命令进入 redis1 虚拟机:

vagrant ssh redis1

配置 YUM 源

为了提高软件包的下载速度,我们可以将 YUM 源更换为阿里云的镜像源。

  1. 切换到 root 用户:

    su  # 提示输入密码(vagrant)
    
  2. 下载阿里云的 CentOS 7 YUM 源配置文件:

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
  3. 编辑 YUM 源配置文件,将 http 替换为 https

    vi /etc/yum.repos.d/CentOS-Base.repo
    

    进入 vi 的命令模式,使用以下命令全局替换:

    :%s/http:/https:/g
    
  4. 清理 YUM 缓存并重新生成缓存:

    yum clean all
    yum makecache
    

测试换源是否成功

安装 wget 以测试换源是否成功:

yum install wget -y

截图_20240716134647

安装 GCC

Redis 编译需要 GCC 工具链,首先检查是否已安装:

gcc --version  # 如果输出了 gcc 的版本,则跳过 gcc 的安装

如果提示:bash: gcc: command not found,那么就需要安装:

yum install gcc -y

中途无报错并且输出类似如下,表示安装成功。

截图_20240716142332

安装 Redis

  1. 创建 Redis 安装目录并下载 Redis 源码

    mkdir -p /opt/software/redis && cd /opt/software/redis
    wget https://download.redis.io/redis-stable.tar.gz
    tar -xzf redis-stable.tar.gz && cd redis-stable
    
  2. 编译并安装 Redis:

    make install
    
  3. 检查 Redis 是否安装完成:

    ll /usr/local/bin | grep redis
    

    如果看到 redis-server, redis-cli 等文件,说明 Redis 安装成功。

截图_20240716150320

与基于 Vagrant 手动部署多个 Redis Server相似的内容:

基于 Vagrant 手动部署多个 Redis Server

环境准备 宿主机环境:Windows 10 虚拟机环境:Vagrant + VirtualBox Vagrantfile 配置 首先,我们需要编写一个 Vagrantfile 来定义我们的虚拟机配置。假设已经在 D:\Vagrant\redis 目录下创建了一个 Vagrantfile,其内容如下:

基于 Three.js 的 3D 模型加载优化

作为一个3D的项目,从用户打开页面到最终模型的渲染加载的时间也会比普通的H5项目要更长一些,从而造成大量的用户流失。为了提升首屏加载的转化率,需要尽可能的降低loading的时间。这里就分享一些我们在模型加载优化方面的心得。

基于MindSpore实现BERT对话情绪识别

本文分享自华为云社区《【昇思25天学习打卡营打卡指南-第二十四天】基于 MindSpore 实现 BERT 对话情绪识别》,作者:JeffDing。 模型简介 BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Trans

基于EF Core存储的Serilog持久化服务

前言 Serilog是 .NET 上的一个原生结构化高性能日志库,这个库能实现一些比内置库更高度的定制。日志持久化是其中一个非常重要的功能,生产环境通常很难挂接调试器或者某些bug的触发条件很奇怪。为了在脱离调试环境的情况下尽可能保留更多线索来辅助解决生产问题,持久化的日志就显得很重要了。目前Ser

基于EF Core存储的国际化服务

前言 .NET 官方有一个用来管理国际化资源的扩展包Microsoft.Extensions.Localization,ASP.NET Core也用这个来实现国际化功能。但是这个包的翻译数据是使用resx资源文件来管理的,这就意味着无法动态管理。虽然官方有在文档中提供了一些第三方管理方案,但是都不太

基于FileZilla上传、下载服务器数据的方法

本文介绍FileZilla软件的下载、配置与使用方法。 在之前的博客中,我们提到了下载高分遥感影像数据需要用到FTP(文件传输协议,File Transfer Protocol)软件FileZilla;这一软件用以在自己的电脑与服务器之间相互传输数据,在进行下载科学数据、网站开发等等操作时,经常需要

Vite5+Electron聊天室|electron31跨平台仿微信EXE客户端|vue3聊天程序

基于electron31+vite5+pinia2跨端仿微信Exe聊天应用ViteElectronChat。 electron31-vite5-chat原创研发vite5+electron31+pinia2+element-plus跨平台实战仿微信客户端聊天应用。实现了聊天、联系人、收藏、朋友圈/短

基于 .net core 8.0 的 swagger 文档优化分享-根据命名空间分组显示

之前也分享过 Swashbuckle.AspNetCore 的使用,不过版本比较老了,本次演示用的示例版本为 .net core 8.0,从安装使用开始,到根据命名空间分组显示,十分的有用

跟我一起学习和开发动态表单系统-前端用vue、elementui实现方法(3)

基于 Vue、Element UI 和 Spring Boot + MyBatis 的动态表单系统前端实现解析 在现代企业信息系统中,动态表单是一种非常常见的功能。它可以根据业务需求灵活地调整表单结构,以满足不同的数据收集和展示需求。在本文中,我们将探讨一种基于 Vue、Element UI 和 S

基于Bootstrap Blazor开源的.NET通用后台权限管理系统

前言 今天大姚给大家分享一个基于Bootstrap Blazor开源的.NET通用后台权限管理系统,后台管理页面兼容所有主流浏览器,完全响应式布局(支持电脑、平板、手机等所有主流设备),可切换至 Blazor 多 Tabs 模式,权限控制细化到网页内任意元素(按钮、表格、文本框等等):Bootstr