华为云征文|基于华为云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

相关文章

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect