写点什么

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

  • 2023-10-16
    广东
  • 本文字数:2655 字

    阅读完需:约 9 分钟

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


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

1      什么是 DEVKIT

华为云开发者插件(Huawei Cloud Toolkit),作为华为云围绕其产品能力向开发者桌面上的延伸,帮助开发者快速在本地连接华为云,打通华为云到开发者的最后一公里。Huawei Cloud ToolKit 是围绕华为云开发者生态工具体系打造的一系列 IDE 插件,支持 VS Code、IntelliJ IDEA 等系列平台、以及华为云自研 CodeArts IDE ,帮助开发者更高效、便捷的搭建应用。致力于为开发者提供更稳定、快速、安全的编程体验。


体验路径:https://developer.huaweicloud.com/develop/toolkit.html


2      IDE 与 DEVKIT 的关系

2.1      什么是 CodeArts IDE?

CodeArts IDE 是一个集成开发环境(IDE),兼具源代码编辑器的简易性和开发人员工具的强大功能,如代码补全和调试。


下载路径:https://developer.huaweicloud.com/develop/toolkit.html

2.2     IntelliJ IDEA 与 DEVKIT 的关系

安装准备


下载并安装 JDK1.8 或更高版本。


下载并安装 IntelliJ IDEA 2020.2 或更高版本。


安装验证


在 IntelliJ 系列平台上安装插件成功后在左侧的导航栏中可以看到 Huawei Cloud Toolkit 图标,点击后面板会出现 Huawei Cloud API 的字样,则说明安装成功。


下载路径:https://developer.huaweicloud.com/develop/toolkit.html

2.3     CodeArts IDE 与 DEVKIT 的关系

API 插件是 CodeArts IDE 原生内置的插件,默认已经安装。左侧的导航栏中可以看到相关图标。



下载路径:https://developer.huaweicloud.com/develop/toolkit.html

2.4      Visual Studio Code IDE 与 DEVKIT 的关系

安装准备


下载并安装 Visual Studio Code 最新版本。


安装验证


在 VS Code IDE 安装插件成功后在左侧的导航栏中可以看到 Huawei Cloud Toolkit 图标,点击后面板会出现 Huawei Cloud API 的字样,则说明安装成功。


下载路径:https://developer.huaweicloud.com/develop/toolkit.html

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

用户头像

公众号:华为云PaaS服务,有见面礼等你哦! 2022-09-26 加入

还未添加个人简介

评论

发布
暂无评论
华为云应用中间件DCS系列—Redis实现(社交APP)实时评论_华为云PaaS服务小智_InfoQ写作社区