【IDE插件教学】华为云应用中间件系列—Redis实现(电商游戏应用)排行榜示例
云服务、API、SDK,调试,查看,我都行
阅读短文您可以学习到:应用中间件系列之Redis实现(电商游戏应用)排行榜示例
1 什么是DEVKIT
华为云开发者插件(Huawei Cloud Toolkit),作为华为云围绕其产品能力向开发者桌面上的延伸,帮助开发者快速在本地连接华为云,打通华为云到开发者的最后一公里。Huawei Cloud ToolKit是围绕华为云开发者生态工具体系打造的一系列IDE插件,支持VS Code、IntelliJ IDEA等系列平台、以及华为云自研 CodeArts IDE ,帮助开发者更高效、便捷的搭建应用。致力于为开发者提供更稳定、快速、安全的编程体验。
体验路径:Toolkit-华为云
2 IDE与DEVKIT的关系
2.1 什么是CodeArts IDE?
CodeArts IDE是一个集成开发环境(IDE),兼具源代码编辑器的简易性和开发人员工具的强大功能,如代码补全和调试。
下载路径:Toolkit-华为云
2.2 IntelliJ IDEA与DEVKIT的关系
安装准备
下载并安装JDK1.8或更高版本。
下载并安装IntelliJ IDEA 2020.2或更高版本。
安装验证
在IntelliJ系列平台上安装插件成功后在左侧的导航栏中可以看到Huawei Cloud Toolkit图标,点击后面板会出现Huawei Cloud API的字样,则说明安装成功。
下载路径:Toolkit-华为云
2.3 CodeArts IDE与DEVKIT的关系
API插件是CodeArts IDE原生内置的插件,默认已经安装。左侧的导航栏中可以看到相关图标。
下载路径:Toolkit-华为云
2.4 Visual Studio Code IDE与DEVKIT的关系
安装准备
下载并安装Visual Studio Code最新版本。
安装验证
在VS Code IDE安装插件成功后在左侧的导航栏中可以看到Huawei Cloud Toolkit图标,点击后面板会出现Huawei Cloud API的字样,则说明安装成功。
下载路径:Toolkit-华为云
3 Redis实现(电商游戏应用)排行榜示例(Java版本)
3.1 使用Redis实现排行榜功能
版本说明:本示例基于华为云分布式缓存服务Redis基础版 5.0开发。
简介
Redis实现(电商游戏应用)排行榜示例(Java版本)
在网页和APP中常常需要用到榜单的功能,对某个key-value的列表进行降序显示。当操作和查询并发大的时候,使用传统数据库就会遇到性能瓶颈,造成较大的时延。
使用分布式缓存服务(DCS)的Redis版本,可以实现一个商品热销排行榜的功能。它的优势在于:
数据保存在缓存中,读写速度非常快。
提供字符串(String)、链表(List)、集合(Set)、哈希(Hash)等多种数据结构类型的存储。
本实践介绍如何使用Redis实现商品销量排行。
开发前准备
注册华为云账号,详细操作请参见如何注册华为云管理控制台的用户?,并完成实名认证。
已购买具有公网IP的ECS,详细操作请参见购买并登录Linux弹性云服务器。
已购买DCS缓存实例,详细操作请参见购买缓存实例,且需保证DCS实例与已购买具的ECS在同一虚拟私有云、子网内,并在已购买具的ECS上配置公网访问Redis,详细操作请参见使用Nginx实现公网访问Redis 4.0/5.0的单机/主备/Proxy集群实例。
安装SDK
您可以通过Maven方式获取和安装SDK,首先需要在您的操作系统中下载并安装Maven ,安装完成后您只需要在Java项目的pom.xml文件中加入相应的依赖项即可。
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version>
</dependency>
开始使用
导入依赖模块
//导入数据类型类
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
//通用唯一识别码类
import java.util.UUID;
//Redis客户端Jedis类
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;
生成产品及销量数据
示例代码
// 随机生成产品数据List<String> productList = new ArrayList<>();for (int i = 0; i < PRODUCT_KINDS; i++) {productList.add("product-" + UUID.randomUUID().toString());}// 随机生成销量for (int i = 0; i < productList.size(); i++) {int sales = (int) (Math.random() * 20000);String product = productList.get(i);// 插入Redis的SortedSet中jedisClient.zadd(key, sales, product);}
按销量顺序输出排行榜
示例代码
// 获取所有列表并按销量顺序输出Set<Tuple> sortedProductList = jedisClient.zrevrangeWithScores(key, 0, -1);for (Tuple product : sortedProductList) {System.out.println("产品ID: " + product.getElement() + ", 销量: "+ (int) product.getScore());}System.out.println();System.out.println(" " + key);System.out.println(" 前五大热销产品");// 获取销量前五列表并输出Set<Tuple> sortedTopList = jedisClient.zrevrangeWithScores(key, 0, 4);for (Tuple product : sortedTopList) {System.out.println("产品ID: " + product.getElement() + ", 销量: "+ (int) product.getScore());}
3.2 展示效果
编译并运行以上Demo程序,结果如下:
商品热销排行榜
产品ID: product-b290c0d4-e919-4266-8eb5-7ab84b19862d, 销量: 18433
产品ID: product-e61a0642-d34f-46f4-a720-ee35940a5e7f, 销量: 18334
产品ID: product-ceeab7c3-69a7-4994-afc6-41b7bc463d44, 销量: 18196
产品ID: product-f2bdc549-8b3e-4db1-8cd4-a2ddef4f5d97, 销量: 17870
产品ID: product-f50ca2de-7fa4-45a3-bf32-23d34ac15a41, 销量: 17842
产品ID: product-d0c364e0-66ec-48a8-9ac9-4fb58adfd033, 销量: 17782
产品ID: product-5e406bbf-47c7-44a9-965e-e1e9b62ed1cc, 销量: 17093
产品ID: product-0c4d31ee-bb15-4c88-b319-a69f74e3c493, 销量: 16432
产品ID: product-a986e3a4-4023-4e00-8104-db97e459f958, 销量: 16380
产品ID: product-a3ac9738-bed2-4a9c-b96a-d8511ae7f03a, 销量: 15305
产品ID: product-6b8ad4b7-e134-480f-b3ae-3d35d242cb53, 销量: 14534
产品ID: product-26a9b41b-96b1-4de0-932b-f78d95d55b2d, 销量: 11417
产品ID: product-1f043255-a1f9-40a0-b48b-f40a81d07e0e, 销量: 10875
产品ID: product-c8fee24c-d601-4e0e-9d18-046a65e59835, 销量: 10521
产品ID: product-5869622b-1894-4702-b750-d76ff4b29163, 销量: 10271
产品ID: product-ff0317d2-d7be-4021-9d25-1f997d622768, 销量: 9909
产品ID: product-da254e81-6dec-4c76-928d-9a879a11ed8d, 销量: 9504
产品ID: product-fa976c02-b175-4e82-b53a-8c0df96fe877, 销量: 8630
产品ID: product-0624a180-4914-46b9-84d0-9dfbbdaa0da2, 销量: 8405
产品ID: product-d0079955-eaea-47b2-845f-5ff05a110a70, 销量: 7930
产品ID: product-a53145ef-1db9-4c4d-a029-9324e7f728fe, 销量: 7429
产品ID: product-9b1a1fd1-7c3b-4ae8-9fd3-ab6a0bf71cae, 销量: 5944
产品ID: product-cf894aee-c1cb-425e-a644-87ff06485eb7, 销量: 5252
产品ID: product-8bd78ba8-f2c4-4e5e-b393-60aa738eceae, 销量: 4903
产品ID: product-89b64402-c624-4cf1-8532-ae1b4ec4cabc, 销量: 4527
产品ID: product-98b85168-9226-43d9-b3cf-ef84e1c3d75f, 销量: 3095
产品ID: product-0dda314f-22a7-464b-ab8c-2f8f00823a39, 销量: 2425
产品ID: product-de7eb085-9435-4924-b6fa-9e9fe552d5a7, 销量: 1694
产品ID: product-9beadc07-aab0-438c-ac5e-bcc72b9d9c36, 销量: 1135
产品ID: product-43834316-4aca-4fb2-8d2d-c768513015c5, 销量: 256
商品热销排行榜
前五大热销产品
产品ID: product-b290c0d4-e919-4266-8eb5-7ab84b19862d, 销量: 18433
产品ID: product-e61a0642-d34f-46f4-a720-ee35940a5e7f, 销量: 18334
产品ID: product-ceeab7c3-69a7-4994-afc6-41b7bc463d44, 销量: 18196
产品ID: product-f2bdc549-8b3e-4db1-8cd4-a2ddef4f5d97, 销量: 17870
产品ID: product-f50ca2de-7fa4-45a3-bf32-23d34ac15a41, 销量: 17842
4 体验插件的魅力
华为云devkit已上线:https://developer.huaweicloud.com/develop/toolkit.html
相关文章:
【IDE插件教学】华为云应用中间件系列—Redis实现(电商游戏应用)排行榜示例
云服务、API、SDK,调试,查看,我都行 阅读短文您可以学习到:应用中间件系列之Redis实现(电商游戏应用)排行榜示例 1 什么是DEVKIT 华为云开发者插件(Huawei Cloud Toolkit)&a…...
Linux:mongodb数据库源码包安装(4.4.25版本)
环境 系统:centos7 本机ip:192.168.254.1 准备的mongodb包 版本 : 4.4.25 全名称:mongodb-linux-x86_64-rhel70-4.4.25.tgz 下载源码包 Download MongoDB Community Server | MongoDBhttps://www.mongodb.com/try/downloa…...
pdf怎么合并在一起?
pdf怎么合并在一起?对于pdf合并这个问题,有的小伙伴想很简单,只需要将文件直接复制再其中的一个后面不就完事了吗。其实不然,因为我们如果要是需要将很多文件进行合并的话,就会产生很多问题的。总之,在现在…...
杀死僵尸进程ZooKeeperMain
关闭Hadoop后jps发现还有个进程ZooKeeperMain没有关闭,使用kill -9 <>也没有用,这种就是僵尸进程,需要用父进程ID来杀死 解决方法 话不多说,直接上解决方案, 1. 第一步 清楚需要关闭的进程ID,我…...
JavaScript class和function的区别
待整理: 一 二 Class 组件和 Function 组件是 React 中创建组件的两种主要方式。他们在语法和功能上有一些不同。以下分点是 Class 组件和 Function 组件在不同方面的对比: 1. 语法结构 Class 组件: import React, { Component } from …...
MySQL8.0修改mysql允许远程连接
1、连接服务器: mysql -u root -p2、看当前所有数据库:show databases; 3、进入mysql数据库:use mysql; 4、查看mysql数据库中所有的表:show tables; 5、查看user表中的数据:select Host, User,Password from user; 6、修改us…...
【算法训练-排序算法 二】【手撕排序】快速排序、堆排序、归并排序
废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【手撕排序系列】,使用【数组】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…...
C# RestoreFormer 图像修复
效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms;namespace 图像修复 {pu…...
yolov5+车辆重识别【附代码】
本篇文章主要是实现的yolov5和reid结合的车辆重识别项目。是在我之前实现的yolov5_reid行人重识别的代码上修改实现的baseline模型。 目录 相关参考资料 数据集说明 环境说明 项目使用说明 vehicle reid训练 yolov5车辆重识别 从视频中获取想要检测的车(待检测车辆) 车…...
C语言练习百题之#ifdef和#ifndef的应用
#if, #ifdef, 和 #ifndef 是C语言预处理指令,它们可以用于条件编译,帮助控制程序的编译过程。以下是各种应用场景以及一些注意事项: 1. 使用 #ifdef 和 #ifndef 检查宏是否定义: 应用场景: 检查宏是否已经在代码中定义…...
与C语言不同的基础语法
一、不同 1.可同时定义并初始化多个变量 2.有string字符串类型 3.可在循环中定义变量 #include<iostream> using namespace std; int main() {int a1,b2;//可同时定义并初始化多个变量string name;//字符串类型 char array[3]; for(int i1;i<3;i)//for中定义i变量…...
Python文件读写实战:处理日常任务的终极工具!
更多资料获取 📚 个人网站:涛哥聊Python Python文件的读写操作时,有很多需要考虑的细节,这包括文件打开方式、读取和写入数据的方法、异常处理等。 在本文中,将深入探讨Python中的文件操作,旨在提供全面的…...
思维模型 秩序
本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。秩序是事物正常运行的基石。有序的安排是成功的先决条件。 1 秩序的应用 1.1 秩序在不同科学领域中的应用 物理学和天文学: 物理学家通过研究原子和分子的有序排列来理解物质的…...
pyqt5移动鼠标时显示鼠标坐标
问题: 只有按住鼠标左键或者右键移动的时候才会获取坐标值,即使对QLabel控件使用setMouseTracking(True)也无法解决。 解决方法: 在初始化构造函数中加入 self.setMouseTracking(True) self.centralwidget.setMouseTracking(True) 并且对…...
分享一下开发回收废品小程序的步骤
随着人们环保意识的不断提高,回收利用已成为日常生活中不可或缺的一部分。回收小程序作为一种便捷、高效的回收方式,越来越受到人们的关注和喜爱。本文将探讨回收小程序的意义和作用,设计理念、功能特点、使用流程以及推广策略,并…...
568A和568B两种线序
现状 现在大家都是采用568B的线序 线序 标准568A:橙白-1,橙-2,绿白-3,蓝-4,蓝白-5,绿-6,棕白-7,棕-8 标准568B:绿白-1,绿-2,橙白-3&#x…...
kafka广播消费组停机后未删除优化
背景 kafka广播消息的时候为了保证groupId不重复,再创建的时间采用前缀时间戳的形式,这样可以保证每次启动的时候是创建的新的,但是 会出现一个问题:就是每次停机或者重启都会新建一个应用实例,关闭应用后并不会删除…...
深度学习自学笔记十三:unet网络详解和环境配置
一、unet网络详解 UNet(全名为 U-Net)是一种深度学习架构,最初由Olaf Ronneberger、Philipp Fischer和Thomas Brox于2015年提出,用于图像分割任务。该网络的名称来源于其U形状的架构,该架构使得网络在编码和解码过程中…...
如何给苹果ipa和安卓apk应用APP包体修改手机屏幕上logo图标iocn?
虽然修改应用文件图标是一个简单的事情,但是还是有很多小可爱是不明白的,你要是想要明白的话,那我就让你今天明白明白,我们今天采用的非常规打包方式,常规打包方式科技一下教程铺天盖地,既然小弟我出马&…...
复旦MBA魏文童:构建完备管理知识体系,助力企业数字化发展
日月光华,旦复旦兮!复旦MBA如同一个巨大的磁场,吸引了诸多来自五湖四海、各行各业的职场精英。从初入职场的青涩懵懂到如今的独当一面专业干练,他们逐渐成长为职场的中坚力量,在各自领域内发光发热。作为新时代的青年&…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
STL 2迭代器
文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器? 1.迭代器…...
