目录
前言
相信作为一个开发者,应该都了解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+" 你已经抢过红包了";
}
调用抢红包接口
在Flexus X 实例查看 Redis存储情况,可以看到剩下9个红包。
接口日志打印也能看到用户123456789抢到了红包,金额是7。
总结
本文介绍了华为云Flexus X实例结合宝塔可视化面板快速、便捷地安装非关系型数据库Redis,并通过微信发红包及抢红包案例实践展示了如何操作Redis。文章首先概述了华为云Flexus X实例的购买和登录流程,然后详细介绍了宝塔面板的安装和配置,接着讲解了如何在Flexus X实例上部署Redis,包括密码设置和端口开放。最后,通过实战案例展示了Flexus X实例上Redis的应用。对于初学者来说,华为云Flexus X实例也是十分容易上手的,从购买到使用基本都可以通过可视化操作完成,让初学者不再畏惧Linux命令。
现在,🔥华为云828 B2B企业节火热进行中!Flexus X实例优惠力度空前,不容错过!🚀
对于追求极致算力性能的朋友,以及需要优化自建MySQL、Redis、Nginx性能的企业,Flexus X实例将是你的不二之选,赶快行动吧!