目录
前言
一、华为云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、内存、存储和网络带宽等。
购买成功后,可以在华为云控制台中看到刚刚购买的Flexus X实例服务器,本文已购买的4核12G的实例,详细配置如下:
1.2 登录Flexus X实例
这里需要注意的是,首次购买后,需要重置服务器的登录密码,以便能够远程登录到服务器中。在华为云控制台中,找到Flexus云服务器X实例,点击“重置密码”按钮,然后按照提示设置新的登录密码。
接下来就可以登录到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进行
确认。
等待Flexus X实例下载安装,最终提示Congratulations! Installed successfully!,说明安装完成了。
2.2 开放宝塔面板端口
由于本次安装宝塔外部端口是18226,所以需要在Flexus云服务器X实例的安全组中放通宝塔面板的端口号,确保外部可以正常访问宝塔面板。
2.3 登录宝塔面板
复制上述安装完成以提示里宝塔面板的外网地址,在浏览器中打开,并且输入安装过程中提供的用户名和密码进行登录即可。
三、华为云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-service
redis:
port: 6379 #redis 端口号 无密码
host: Flexus X IP
password: 123456
database: 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命令。