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

这篇具有很好参考价值的文章主要介绍了华为云应用中间件DCS系列—Redis实现(社交APP)实时评论。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

1      什么是DEVKIT

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

体验路径:Toolkit-华为云

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

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原生内置的插件,默认已经安装。左侧的导航栏中可以看到相关图标。

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

下载路径: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文章来源地址https://www.toymoban.com/news/detail-723034.html

到了这里,关于华为云应用中间件DCS系列—Redis实现(社交APP)实时评论的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 中间件系列 - Redis入门到实战(高级篇-分布式缓存)

    学习视频: 黑马程序员Redis入门到实战教程,深度透析redis底层原理+redis分布式锁+企业解决方案+黑马点评实战项目 中间件系列 - Redis入门到实战 本内容仅用于个人学习笔记,如有侵扰,联系删除 学习目标 Redis持久化 Redis主从 Redis哨兵 Redis分片集群 - 基于Redis集群解决单机R

    2024年02月03日
    浏览(49)
  • 架构师系列- 消息中间件(13)-kafka深入应用

    1)配置文件  2)启动信息 4.2.1 发送类型 KafkaTemplate调用send时默认采用异步发送,如果需要同步获取发送结果,调用get方法 详细代码参考:AsyncProducer.java 消费者使用:KafkaConsumer.java 1)同步发送 通过swagger发送,控制台可以正常打印send result swagger访问地址:http://localhost:808

    2024年04月29日
    浏览(38)
  • Go重写Redis中间件 - Go实现Redis集群

    这章的内容是将我们之前实现的单机版的Redis扩充成集群版,给Redis增加集群功能,在增加集群功能之前,我们先学习一下在分布式系统中引用非常广泛的技术一致性哈希,一致性哈希在我们项目里就应用在我们Redis集群的搭建这块 详解一致性哈希 Redis集群需求背景 单台服务

    2024年02月13日
    浏览(44)
  • Go重写Redis中间件 - Go实现Redis持久化

    项目开发到这里,我们的下一步就是实现Redis的持久化落盘功能,Redis是一个内存型的数据库,在之前我们实现的单机版Redis如果把进程杀掉,我们通过GET、SET指令存储的数据都将不复存在,数据只存在内存的map里面,重启之后什么都没有了 我们现在的目标就是把用户发来的指

    2024年02月14日
    浏览(50)
  • Go重写Redis中间件 - Go实现Redis协议解析器

    Redis网络协议详解 在解决完通信后,下一步就是搞清楚 Redis 的协议-RESP协议,其实就是一套类似JSON、Protocol Buffers的序列化协议,也就是我们的客户端和服务端通信的协议 RESP定义了5种格式 简单字符串(Simple String) : 服务器用来返回简单的结果,以\\\"+\\\"开头,\\\"rn\\\"结尾的字符串形

    2024年02月15日
    浏览(49)
  • Go重写Redis中间件 - Go实现内存数据库

    前面我们实现了一个简单的回发Redis,这里我们要实现一个真正的Redis内核 实现底层Dict数据结构 新建一个datastruct文件夹,放一些我们要用的数据结构,比如Redis的核心起始就是一个map,再新建一个包实现这个map或者叫字典,字典的底层使用的就是map dict.go 写一个Dict接口定义

    2024年02月11日
    浏览(48)
  • Go重写Redis中间件 - GO实现TCP服务器

    首先新建一个项目go-redis,将config和lib包放到项目中,config.go用来解析配置,比如端口、功能、DB数;lib包有两个文件夹,分别是logger和sync,其中logger.go是一个日志框架,sync包中的bool.go包装了atomic操作,因为atomic原生没有bool类型,所以将uint32类型改造成bool型的atomic,wait.g

    2024年02月15日
    浏览(81)
  • 云原生中间件开源现状分析与华为中间件案例解读

    开源中间件在企业分布式架构搭建和服务治理中扮演着重要的角色,尤其是在解决我国网络高并发和业务复杂性问题方面。然而,尽管中间件市场由商业闭源厂商主导,提供了一系列基础中间件和数据类中间件以支持稳定的应用程序运行环境,开源中间件生态却相对分散和薄

    2024年02月02日
    浏览(73)
  • 软考高级系统架构设计师系列论文七十三:论中间件在SIM卡应用开发中的作用

    软考高级系统架构设计师:构件与中间件技术 我曾于近期参与过一个基于SIM卡应用的开发项目,并在项目中担任系统分析的工作。 在分析过程中,我们依据面向对象方法对系统进行了划分,其中许多的模块已有成熟的中间件产品可供使用。我们选择中间件产品的标准是:功

    2024年02月11日
    浏览(64)
  • 中间件redis的使用

    Java中的中间件配置体现在springboot的yml配置文件中。Springboot框架支持微服务和中间件和restful api远程服务的调用。中间件是Java web系统的中间层的服务系统的调用接口。Springboot的自动装配和约定大于配置机制初始化springcontext的容器空间和注册组件。使用容器管理服务注册对象

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包