使用华为开发者空间,部署Redis,通过Codelabs的示例代码,模拟电商平台秒杀抢购场景【华为开发者空间】

举报
福州司马懿 发表于 2024/12/16 11:59:59 2024/12/16
【摘要】 前言 配置“开发者空间” 项目实战 Redis环境搭建 安装 Redis 测试redis 配置redis密码 运行模拟场景 通过Codelabs下载代码 CodeArts IDE 打开代码 CodeArts IDE 修改配置 CodeArts IDE 使用调试功能模拟秒杀场景 总结 前言Redis 常用于缓存系统和队列系统,是一个高性能的key-value数据库,为了提高效率Redis会将...

前言

Redis 常用于缓存系统和队列系统,是一个高性能的key-value数据库,为了提高效率Redis会将数据尽可能多的缓存在内存中,并周期性的把更新数据写入磁盘或者把修改操作写入追加的记录文件,同时在此基础上实现了master-slave(主从)同步。

本案例将指导开发者如何在华为开发者空间免费申请云主机(Ubuntu系统)中安装和配置Redis,并通过Codelabs上的Java版本的电商平台秒杀示例项目,带大家一起体验下如何使用Jedis对接Redis服务器实现缓存功能,并使用开发者空间上预装的CodeArts IDE for java模拟运行电商秒杀抢购场景。

图片.png

配置“开发者空间”

如您还没有云主机,可点击 https://bbs.huaweicloud.com/forum/thread-0205160132391256007-1-1.html 进行开通

如果已经订阅了开发者空间,直接访问 https://developer.huaweicloud.com/space/home 即可

图片.png

然后点击“开发桌面”(如果太长时间未使用,开发者空间会被回收,需要重新配置领取)

图片.png

在对云主机进行配置的时候,其余选项全部默认即可,但是工具这里建议选择Java(因为后续用到的CodeLabs代码是Java版本的)

图片.png

然后点击“安装”按钮,可以看到云主机立马就“就绪”了。点击“进入桌面”开始体验云主机

图片.png

每次访问开发者空间,都需要进行“环境准备”,大概等个3-5分钟左右

图片.png

项目实战

Redis环境搭建

安装 Redis

在Ubuntu云桌面下方,找到Terminal终端并打开

图片.png

在命令行中输入命令 sudo apt-get install redis-server 安装redis服务器

图片.png

输入命令“sudo systemctl status redis-server”可以看到 Redis 服务的运行状态activate (running) 说明服务已经正在运行中,按下 ctrl+c,退出查询状态

图片.png

测试redis

接下来,使用命令 redis-cli 登录redis并测试数据的保存和获取(由于没有设置密码,可以直接登录)

图片.png

测试命令

  • set <key> <value> 用来存储数据
  • get <ket>

在输入命令的时候,会有代码提示

图片.png

Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合)。因此这里会把数字当成字符串来存取。

图片.png

最后,输入 exit 退出 redis

配置redis密码

使用 ls /etc/redis 命令,可以看到 redis 的配置文件 —— redis.conf

图片.png

使用命令 sudo vim /etc/redis/redis.conf 打开并编辑配置文件,找到“requirepass”这一行,把注释符号“#”删除,并将“foobared”改成想要设置的密码。

提示,可以输入“/<关键词>”进行搜索,按N跳转到下一个
按 “i” 进入编辑模式,可以修改代码
“:wq”保存并退出

图片.png

接下来使用命令 sudo systemctl restart redis-server 重启redis。重启完后,使用 sudo systemctl status redis-server 查看redis服务的运行状态

图片.png

再使用命令 redis-cli登录到redis控制台,并使用 get name 获取数据发现报错,提示我们认证失败 NOAUTH Authentication required

图片.png

由于前面已经设置了登录密码,所以现在必须要使用之前配置的密码登录。

输入 exit 退出控制台,输入如下命令进行登录

redis-cli -h localhost -p 6379 -a <你的密码>

然后再使用 get <key> 获取数据。

图片.png

运行模拟场景

通过Codelabs下载代码

在浏览器地址栏输入 https://codelabs.developer.huaweicloud.com/codelabs/home 进入“开发体验馆 Codelabs”

开发体验馆 Codelabs 提供丰富的华为云产品代码示例和便捷的线上编码环境,帮助开发者学习和了解如何基于华为云服务进行应用开发

图片.png

在Codelabs页面的搜索栏中,输入“电商”,可以看到搜索出来的两个代码都是Redis实现的Java版本项目

因此,前面在创建云主机的时候,工具配置建议选择Java

图片.png

选择第二个“Redis实现(电商网站)秒杀抢购示例(Java版本) ”。进入对应的页面后,点击“浏览代码”

图片.png

在代码页面,点击右上角的“下载”按钮进行下载

图片.png

注意:这里要先登录账号,才能正常下载

图片.png

CodeArts IDE 打开代码

找到下载的代码压缩包,解压缩到当前目录

图片.png

在云主机的桌面,找到CodeArts IDE,双击打开

图片.png

点击打开工程,找到我们之前下载并解压的项目

图片.png

图片.png

图片.png

CodeArts IDE 修改配置

打开“src\main\java\com\huaweicloud\dcs\DistributedLock.java”文件,修改HOST、PORT以及redis密码等配置信息

  • HOST改为127.0.0.1
  • PORT改为6379,
  • 密码改为你之前设置的密码(代码第73行)

图片.png

图片.png

CodeArts IDE 使用调试功能模拟秒杀场景

左侧代码切换到 CaseTest.java,点击代码左侧的三角形运行符号

图片.png

图片.png

在控制台看到运行结果。

可以看到,总共只有10台设备,在前10个人抢购完成后,后续用户购买就会返回已售罄的错误标识。实验成功

图片.png

总结

  1. 华为开发者空间是一个很好的免费线上独立环境,你可以在云上部署和运行代码(但是注意:长时间不使用代码会被回收)
    快速访问:https://developer.huaweicloud.com/space/home

  2. Codelabs提供丰富的华为云产品代码示例,当你想要使用某个华为云产品,但对如何编写代码没有头绪时,不妨到Codelabs上搜索相关实例并运行看看
    快速访问:https://codelabs.developer.huaweicloud.com/codelabs/home

我正在参加【有奖征集 第34期】华为开发者空间一行代码快速上云,参与视频、文章投稿赢2000元开发者礼包
链接:https://bbs.huaweicloud.com/blogs/438987

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。