华为云征文|基于华为云Flexus X实例部署Redis及案例实践详解

2024-09-03 04:28

本文主要是介绍华为云征文|基于华为云Flexus X实例部署Redis及案例实践详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 前言

一、华为云Flexus X实例购买

1.1 Flexus X实例购买

1.2 登录Flexus X实例

二、Flexus X实例安装宝塔面板

2.1 安装宝塔面板

2.2 开放宝塔面板端口

2.3 登录宝塔面板

三、华为云Flexus X实例部署Redis

3.1 宝塔面板安装Redis

3.2 Redis密码设置及第三方登录

3.3 开放Redis端口

四、基于Flexus X实例实践Redis案例

4.1 发红包

4.2 抢红包

总结


 前言

       相信作为一个开发者,应该都了解Linux服务器,在项目部署前,是不是总要花费大量时间去安装各种环境和软件,过程中可能会遇到各种预料之外的问题。本文,我要给大家介绍的是华为云Flexus X实例,并结合宝塔可视化面板快速、便捷地安装非关系型数据库Redis,并利用Flexus X实例进行Redis案例实践探讨。

一、华为云Flexus X实例购买

1.1 Flexus X实例购买

在开始本文的实践之前,需要在华为云官网上购买Flexus X实例,这个一般可以根据自己的实际需求项目选择合适的配置,比如CPU、内存、存储和网络带宽等。

8b5e99e4e6174443bb2d3f7b33dabbd5.png

购买成功后,可以在华为云控制台中看到刚刚购买的Flexus X实例服务器,本文已购买的4核12G的实例,详细配置如下:

6da673ffb8ea4671b37feda06f25f161.png

1.2 登录Flexus X实例

这里需要注意的是,首次购买后,需要重置服务器的登录密码,以便能够远程登录到服务器中。在华为云控制台中,找到Flexus云服务器X实例,点击“重置密码”按钮,然后按照提示设置新的登录密码。

cd2a2ee5f8d244e9af0248cc91adb279.png

接下来就可以登录到Flexus云服务器X实例中,进入终端之后,会提示 Welcome to Huawei Cloud Service,说明成功登录。

二、Flexus X实例安装宝塔面板

完成上述基础准备工作之后,接下来就可以进行宝塔面板安装了,Flexus云服务器X部署宝塔面板,能够极大地简化服务器的配置和管理过程,提高运维效率,能够让不熟悉Linux的开发中也能够顺利完成项目部署。接下来就,详细介绍Flexus云服务器X部署宝塔面板。

2.1 安装宝塔面板

在上述登录的终端中,执行以下命令下载并安装宝塔面板。

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

当提示是否将磁盘挂载到/www时,进行二次确认,输入y进行确认。

3f4b5418f1da44f6a19f8d91a3e6059d.png

等待Flexus X实例下载安装,最终提示Congratulations! Installed successfully!,说明安装完成了。

3a02f0a67c2d4fe6963b53dd3e9eea85.png

2.2 开放宝塔面板端口

由于本次安装宝塔外部端口是18226,所以需要在Flexus云服务器X实例的安全组中放通宝塔面板的端口号,确保外部可以正常访问宝塔面板。

cb31b6b8a9404209aa44a670e1503e46.png

2.3 登录宝塔面板

复制上述安装完成以提示里宝塔面板的外网地址,在浏览器中打开,并且输入安装过程中提供的用户名和密码进行登录即可。

bdbc479c692c4c33a18c27784bb2a134.png

三、华为云Flexus X实例部署Redis

在已经完成宝塔面板安装的基础上,接下来就是在华为云Flexus X实例快速安装Redis。

3.1 宝塔面板安装Redis

宝塔面板软件商店菜单,直接搜Redis,在操作栏点击安装即可,安装成功如图所示:

点击右边立即安装按钮,等待华为云Flexus X进行Redis安装

安装完成之后,也可以在数据库-Redis中查看到已安装完成的Redis,同时也是可以直接在宝塔面板添加相关key,操作也是十分方便。

进入在Flexus X实例终端查看redis,使用redis-cli进入镜像登录,实现set基础操作。

3.2 Redis密码设置及第三方登录

初次安装的Redis是没有密码的,所以我们需要设置密码,并且不允许第三方直接登录。这个配置过程非常简单,无需通过服务器命令修改,只需在宝塔面板进行操作即可。

在软件商店Redis点击设置,修改端口为0.0.0.0,以及密码为自己想要的,比如123456。接下来还有个重要的一步,点击配置文件,修改配置文件中的登录密码。

上述修改完配置之后,需要重新加载最新配置,才会生效。

后续如果想要修改Redis的其他配置,直接可以在这里点击配置文件进行修改,无需进入服务器。

3.3 开放Redis端口

在实际开发中,项目需要远程连接到Redis,所以需要开发对应的外部端口,Redis默认端口是6379,在Flexus X实例添加安全组,如图所示。

同时,在宝塔面板也是需要配置防火墙,在左边安全菜单针对6379端口新增规则。

完成以上步骤后,第三方就可以使用修改后的密码重新登录Redis了。

四、基于Flexus X实例实践Redis案例

接下来,我们以微信发红包及抢红包案例为例,来分析演示如何在Flexus X实例上操作Redis。

首先,在Spring Boot的配置文件中添加Redis连接配置:

spring:application:name: activity-serviceredis:port: 6379  #redis 端口号  无密码host: Flexus X IPpassword: 123456database: 0

4.1 发红包

发红包的主要逻辑是将红包总金额拆分为多个子红包,并保存到Redis的list结构中,同时设置过期时间。具体接口代码如下:

 @RequestMapping(value = "/send")public String sendRedPackage(int totalMoney, int redPackageNumber){//1 拆红包,将红包总金额totalMoney拆分为redPackageNumber个子红包Integer[] splitRedPackages = splitRedPackageAlgorithm(totalMoney,redPackageNumber);// 2 发红包保存到list结构里面,并且设置过期时间String key = RED_PACKAGE_KRY + IdUtil.simpleUUID();redisTemplate.opsForList().leftPushAll(key,splitRedPackages);redisTemplate.expire(key,1, TimeUnit.DAYS);// 3 发红包成功,返回前台显示return key+"\t" + Ints.asList(Arrays.stream(splitRedPackages).mapToInt(Integer::valueOf).toArray());}

启动服务,调用接口,模拟发红包,比如100元发10个红包

http://localhost:9901/red-package/send?totalMoney=100&redPackageNumber=10

在Flexus X 实例查看 Redis存储情况,可以看到10个数据。

4.2 抢红包

抢红包的逻辑是先验证用户是否已经抢过红包,如果没有,则从列表中取出一个红包并记录领取信息,使用hash结构记录红包领取记录,详细代码如下:

    /*** 用户抢红包* @param redPackageKey 红包* @param userId 用户id* @return*/@RequestMapping(value = "/rob")public String robRedPackage(String redPackageKey,String userId){// 1.验证某个用户是否抢过红包,查询redis记录Object redPackage = redisTemplate.opsForHash().get(RED_PACKAGE_CONSUME_KRY + redPackageKey, userId);// 2. 用户没有抢过红包if (null == redPackage){// 3. 用户抢红包,直接获取列表中的其中一个红包Object partRedPackage = redisTemplate.opsForList().leftPop(RED_PACKAGE_KRY + redPackageKey);if (partRedPackage != null){// 4.保存红包领取记录,使用hash结构记录红包领取记录redisTemplate.opsForHash().put(RED_PACKAGE_CONSUME_KRY+redPackageKey,userId,partRedPackage);System.out.println("用户"+userId+"\t 抢到红包了 " + partRedPackage);return String.valueOf(partRedPackage);}return "errorCode : -1 ,红包抢完了";}return "errorCode : -2 ,"+userId+" 你已经抢过红包了";}

调用抢红包接口

http://localhost:9901/red-package/rob?redPackageKey=8dd42389e5614c37bc0d2a27f48710ab&userId=123456789

在Flexus X 实例查看 Redis存储情况,可以看到剩下9个红包。

接口日志打印也能看到用户123456789抢到了红包,金额是7。

总结

        本文介绍了华为云Flexus X实例结合宝塔可视化面板快速、便捷地安装非关系型数据库Redis,并通过微信发红包及抢红包案例实践展示了如何操作Redis。文章首先概述了华为云Flexus X实例的购买和登录流程,然后详细介绍了宝塔面板的安装和配置,接着讲解了如何在Flexus X实例上部署Redis,包括密码设置和端口开放。最后,通过实战案例展示了Flexus X实例上Redis的应用。对于初学者来说,华为云Flexus X实例也是十分容易上手的,从购买到使用基本都可以通过可视化操作完成,让初学者不再畏惧Linux命令。

这篇关于华为云征文|基于华为云Flexus X实例部署Redis及案例实践详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132019

相关文章

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多