华为云应用中间件DCS系列—Redis实现(社交APP)实时评论

news2024/11/27 21:02:16

云服务、API、SDK,调试,查看,我都行

阅读短文您可以学习到:应用中间件系列之Redis实现(社交APP)实时评论

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实现(社交APP)返回最新评论示例(Java版本)

3.1      使用Redis实现排行榜功能

Redis实现(社交APP)返回最新评论示例(Java版本)

在web类应用中,常有“最新评论”之类的查询,如果使用关系型数据库,往往涉及到按评论时间逆排序,随着评论越来越多,排序效率越来越低,且并发频繁。

使用Redis的List(链表),例如存储最新1000条评论,当请求的评论数在这个范围,就不需要访问磁盘数据库,直接从缓存中返回,减少数据库压力的同时,提升APP的响应速度。

本实践介绍如何使用Redis实现(社交APP)返回最新评论功能。

开发前准备

注册华为云账号,详细操作请参见如何注册华为云管理控制台的用户?,并完成实名认证。

已购买具有公网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.Set;
//Redis客户端Jedis类
import redis.clients.jedis.Jedis;

添加评论数据

示例代码

int num = 20;
            // 模拟用户向产品a添加评论
            for (int i = 0; i < num; i++) {
                long len = jedisClient.llen(key);
                // 如果缓存评论数大于1000,移除评论列表的最后一个评论
                if (len >= 1000) {
                    jedisClient.rpop(key);
                }
                jedisClient.lpush(key, "comments" + (i + 1));
            }       

获取评论数据

示例代码

 // 获取最新n条评论
            if (newCommentsNum <= 1000) {
                List<String> newCommentsList = jedisClient.lrange(key, 0, newCommentsNum - 1);
                for (String comment : newCommentsList) {
                    System.out.println(comment);
                }
            } else {
                List<String> newCommentsList = jedisClient.lrange(key, 0, 1000 - 1);
                for (String comment : newCommentsList) {
                    System.out.println(comment);
                }
                // 向数据库取评论数据……
            }

3.2      展示效果

社交网站评论回复列表

评论id: 1 评论父id:null, 评论时间: 1684745729506

评论id: 2 评论父id:1, 评论时间: 1684745729567

评论id: 3 评论父id:null, 评论时间: 1684745729630

评论id: 4 评论父id:3, 评论时间: 1684745729692

评论id: 5 评论父id:3, 评论时间: 1684745729755

评论id: 6 评论父id:4, 评论时间: 1684745729819

评论id: 7 评论父id:null, 评论时间: 1684745729879

评论id: 8 评论父id:6, 评论时间: 1684745729942

评论id: 9 评论父id:null, 评论时间: 1684745730006

评论id: 10 评论父id:7, 评论时间: 1684745730069

评论id: 11 评论父id:null, 评论时间: 1684745730132

评论id: 12 评论父id:9, 评论时间: 1684745730194

评论id: 13 评论父id:null, 评论时间: 1684745730256

评论id: 14 评论父id:9, 评论时间: 1684745730320

评论id: 15 评论父id:null, 评论时间: 1684745730382

评论id: 16 评论父id:1, 评论时间: 1684745730444

评论id: 17 评论父id:null, 评论时间: 1684745730508

评论id: 18 评论父id:12, 评论时间: 1684745730570

评论id: 19 评论父id:null, 评论时间: 1684745730631

评论id: 20 评论父id:12, 评论时间: 1684745730694

最新的5条评论回复信息

评论id: 20 回复:12 评论内容:877ba7f1, 评论时间: 1684745730694

评论id: 19, 评论时间: 1684745730631

评论id: 18 回复:12 评论内容:b29f2077, 评论时间: 1684745730570

评论id: 17, 评论时间: 1684745730508

评论id: 16 回复:1 评论内容:9f31200e, 评论时间: 1684745730444

4      体验插件的魅力

华为云devkit已上线:https://developer.huaweicloud.com/develop/toolkit.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1096759.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[科研琐事] 安装服务器的二三事

1. 机柜参数 宽度&#xff1a;一般机器都是符合的&#xff1b; 深度&#xff1a;对应服务器最长的那个边&#xff1b; 厚度&#xff08;高度&#xff09;&#xff1a;1/2/3/4U&#xff0c;就是机柜上写的刻度数字&#xff0c;1U1.75英寸。 1U4.45cm 2U4.45cm * 2 3U4.45cm * …

揭秘OLED透明拼接屏的参数规格:分辨率、亮度与透明度全解析

作为一种新型的显示技术&#xff0c;OLED透明拼接屏在市场中正在迅速崭露头角&#xff0c;有很多知名品牌厂家能设计、开发、生产高品质的显示产品。 如尼伽、起鸿、康视界、LG、YCTIMES、腾裕等&#xff0c;这些品牌在显示技术领域拥有丰富的经验和声誉&#xff0c;以其卓越的…

聚观早报 | 特斯拉发布赛博啤酒套装;小米汽车售价曝光

【聚观365】10月16日消息 特斯拉发布赛博啤酒套装 小米汽车售价曝光 新款Model Y 国内已开启交付 苹果将推出新款 iPad mini / Air 保时捷销量中国区大跌 特斯拉发布赛博啤酒套装 特斯拉在美国市场推出CyberBeerCyberStein限量套装&#xff0c;售价150美元&#xff08;约…

USB PD3.1

目前我们大多数Type-C接口仍然采用的是PD3.0快充协议&#xff0c;按当前用户的使用场景来看功率也完全够用&#xff0c;那么PD3.1快充协议是什么&#xff1f;USB PD3.1到底有没有必要&#xff1f; 不妨我们先了解一下PD3.1: 5月25日&#xff0c;USB-IF协会推出了USB Type-C线…

CSS Display(显示) 与 Visibility(可见性)

display属性设置一个元素应如何显示&#xff0c;visibility属性指定一个元素应可见还是隐藏。 隐藏元素 - display:none或visibility:hidden 隐藏一个元素可以通过把display属性设置为"none"&#xff0c;或把visibility属性设置为"hidden"。但是请注意&a…

Linux下内存检测利器Valgrind之Memcheck工具详解

目录 1、Valgrind简介 1.1、Memcheck工具 1.2、Callgrind工具 1.3、Cachegrind工具 1.4、Helgrind工具 1.5、Massif工具 2、如何使用Memcheck 2.1、启动Memcheck 2.2、输出消息解释 3、使用Memcheck检测内存问题实例 4、Valgrind和Memcheck其他命令选项 5、最后 VC…

如何处理前端错误和异常?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.6 定时器事件

本章要实现的整体效果如下&#xff1a; QT 中使用定时器&#xff0c;有两种方式&#xff1a; 定时器类&#xff1a;QTimer定时器事件&#xff1a;QEvent::Timer&#xff0c;对应的子类是 QTimerEvent 本节通过一个案例&#xff0c;同时讲解这两种方式 案例&#xff1a;当点击…

微信怎么加好友?竟然有5种方法!

微信是我们日常生活中不可缺少的通信工具。在我们的工作或者学习中&#xff0c;我们可能需要主动添加他人的微信来建立联系&#xff0c;以便日后进行更好地沟通。那微信怎么加好友呢&#xff1f;小编给大家总结了5种添加微信好友的方法&#xff01;没想到吧&#xff0c;居然有这…

低温下安装振弦采集仪注意事项

低温下安装振弦采集仪注意事项 振弦采集仪是一种用于测量和监测结构物振动状态的设备&#xff0c;通常用于桥梁、大型建筑物、风力发电机、船舰等设施的监测和评估。在一些寒冷地区&#xff0c;设施的使用环境会面临低温的挑战&#xff0c;因此在安装振弦采集仪时需要注意以下…

解决window电脑使用IKE VPN登录时显示上下文已过期,不能再用了的方法。

当电脑登录VPN时出现上下文已过期&#xff0c;不能再用了时解决办法。 1、使用 winR 的按键打打开运行&#xff1b; 2、输入 services.msc 在服务的列表中找到 IKE and AuthIP IPsec Keying Modules 这个服务&#xff0c;可以看到该服务为禁用状态下。 3、双击该服务&#xf…

论文复现:Active Learning by Learning

这篇文章说实在的&#xff0c;写的差强人意。 实质性内容是两个现有方法的拼凑&#xff01; 讲的模模糊糊&#xff01;对于复现代码不太友好&#xff01; 撸一点&#xff0c;通读一遍 &#xff0c;再撸一点&#xff0c;通读一遍~~~ """ 注意&#xff1a;使用…

Flutter 与 Dart 的市场应用

本文来自《2023年中国谷歌教育合作项目—武汉城市学院—面向Flutter框架的Dart语言师资培训与教学研讨》内容文字版。 Hello&#xff0c;大家好&#xff0c;我是 Flutter GDE 郭树煜&#xff0c;也是《Flutter 开发实战详解》的作者&#xff0c;同时也是 Github GSY 项目的负责…

VUE整合Echarts实现简单的数据可视化

提示&#xff1a;本篇案例使用的vue2 以及 vue cli脚手架&#xff1a; 文章目录 前言 一、Echarts的安装 二、可视化渲染 1.柱状图 2.饼图 3.主题的下载 总结 前言 ECharts是一款功能强大的前端数据可视化库&#xff0c;支持多种图表类型和统计图表、地理数据可视化、关系型…

超声波清洗机洗眼镜真的可以洗干净吗?眼镜超声波清洗机推荐

截止2023年4月份近视眼的统计&#xff0c;我过近视人群高达3亿人&#xff0c;可想而知现在近视的群体是有多么庞大的。近视就免不了要戴眼镜&#xff0c;但是一副眼镜长时间的佩戴不清洗的话&#xff0c;镜片会不清晰&#xff0c;也有的朋友会眼镜脏了就去配一副新的&#xff0…

【狂神说】HTML详解

目录 1 HTML概述1.1 什么是HTML1.2 HTML发展史1.3 HTML5的优势1.4 W3C标准 2 网页2.1 网页基本信息2.2 网页基本标签2.2.1 标题标签2.2.2 段落标签2.2.3 换行标签2.2.4 水平线标签2.2.5 字体样式标签&#xff1a;粗体、斜体2.2.6 注释和特殊符号 2.3 图像标签2.4 链接标签邮箱链…

MapGIS 10.6 Pro自主创新技术升级,护航国产化应用全面替代

信创GIS的发展历经雏形起步阶段&#xff08;2006-2013年&#xff09;、初步试点阶段&#xff08;2014-2017年&#xff09;、规模化试点阶段&#xff08;2017-2019年&#xff09;&#xff0c;目前正处在全面应用推广的新阶段&#xff08;2020年至今&#xff09;&#xff0c;当前…

九州未来参与编制的《基于C-V2X的智能化网联化融合发展路线图》正式发布!

近日&#xff0c;《基于C-V2X的智能化网联化融合发展路线图&#xff08;征求意见稿&#xff09;》在2023世界智能网联汽车大会上正式发布。 路线图在多位院士和众多行业专家指导下&#xff0c;由四十余家相关企业、高校、研究机构共同研究编制&#xff0c;十四家跨行业学会、联…

Seata入门系列【7】Seata之TCC模式入门案例

1 前言 Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 TCC 与 Seata AT 事务一样都是两阶段事务&#xff0c;它与 AT 事务的主要区别为&#xff1a; TCC 对业务代码侵入严重&#xff1a;每个阶段的数据操作都要自己进行…

PDF格式转换为翻页电子书,这种形式太酷辣!

PDF作为工作生活中最常见的文档格式之一&#xff0c;但是PDF格式阅读体验感不是那么好&#xff0c;这时候如果将PDF转化为翻页电子书再阅读&#xff0c;体验感不就直接拉满了嘛&#xff01;如何将PDF格式转换为翻页电子书呢&#xff1f; 为了解决这个问题&#xff0c;我们推荐…