dot 光速的未来即将来到你的城市举办的活动。

在 Redis 发布会上加入我们

认识 Redis Hackathon 2022 获奖者

三位获奖者。三个独特的应用程序——并在实时应用程序性能方面拥有大量创新。

2022 年 Redis 黑客松 于 2022 年 8 月与 DEV 联合启动。Redis 邀请 Dev.to 社区中最投入、最有创意的头脑来使用 Redis Enterprise 的众多功能、模块 和产品构建应用程序。Redis 的优势远远超出 缓存,因此竞赛向社区提出挑战,展示以企业级性能为后盾构建应用程序的可能性。

下载我们的电子书 企业缓存:优化应用程序性能的策略

我们在四个项目类别中收到了 91 份有效提交

Redis 黑客松评选出五名大奖得主、20 名亚军和 25 名优秀参与者,他们提交了时长五分钟或更长的视频。

他们都取得了非凡的成就,因此我们请了三位大奖得主分享他们项目的技术细节,包括他们使用 Redis 扩展应用程序的计划。

Subham Sahu:面向创作者的应用程序 OneSocial

嗨,我是 Subham Sahu,一名工程师,喜欢探索和构建东西。我最近从印度理工学院罗帕尔分校本科毕业。

OneSocial application architecture diagram
Subham 的 OneSocial 架构一览

OneSocial 做什么?

这是一款面向创作者及其受众的应用程序。使用 OneSocial,任何人都可以在其博客上分享他们的想法、管理实时时事通讯、组织活动并让他们的内容更具可发现性。想要更多?可以销售诸如 notion 模板、设计插图或库存图片之类的数字产品,以及诸如视频咨询、模拟面试、简历审查等服务

OneSocial 将如何让创作者/影响者的生活更轻松?

创作者必须使用多个网站和社交平台来运营其业务。结果,创作者的受众分散在许多社交媒体渠道中。为了确保最新公告能传达给受众,创作者必须在多个网站上反复发布相同的信息。这耗时费力,而且可能破坏品牌,因为要求忠实的粉丝在多个平台上订阅您的内容可能是一个很大的要求。

OneSocial 的目标是构建一个单一平台,从上到下为创作者提供所有必要的工具和功能,以便他们可以将整个受众群容纳在一片屋檐下。

技术细节:你是如何构建你的应用程序的?

服务器端到服务器端、服务器端到客户端以及客户端到服务器端的通信通过 GraphQL 完成。前端使用 Next.js 构建,后端使用 Express(Node.js 库)。我们使用 Cloudinary 和 Google Cloud Storage 来安全地存储图像和文件。

Stripe 为支付模块提供支持,而 Redis 队列充当通知系统。聊天模块使用 Redis 流、WebSockets 和 GraphQL 订阅来保持持久连接并立即发送消息。

数据存储为 Redis JSON,我们使用 Redis-OM Node.JS 库与数据库进行交互。为了根据设计要求获得最佳性能,所有主要字段和属性都会编制索引或按顺序排列。我们还使用 RediSearch 对 Redis 中的数据执行全文搜索。最后,我们使用 Redis 流 来跨多个服务发布事件并订阅事件。

与 Subham 保持联系
查看 Subham 的 提交
作品集:subhamx.dev
关注 Subham 的 Twitter:@subhamx

Nabil Alamin:Pic-Placeholder,一个时尚的图像占位符

你好。我是 Nabil,一位常驻尼日利亚的合同开发人员。

Pic-Placeholder 是一个包含 500 多张图像的时尚图像占位符,分成六类:动物、猫、狗、房屋、风景和人物。

导致 Pic-Placeholder 诞生的灵感是什么?

当我听说 Redis 黑客松时,我不知道该构建什么,但我仍然想参加。一段时间以来,我一直听说过 Redis,但从未有机会使用过它。

我正在帮助朋友开发一款房地产应用程序,我们想要使用 Lorem Picsum 作为占位符图像的基础,但由于它过于普通,我们无法使用它,所以我最终构建了自己的应用程序。

Pic-Placeholder 用户希望通过此应用程序实现什么目标?

该项目的目标是在构建以图像为中心网站时创建用于快速原型设计的工具。

你是如何使用 Redis 来开发你的应用程序的?在创建最终产品过程中还使用了哪些其他组件?

我通过从 Unsplash 获取我所有类别的图像并将其转换为 JSON 作为元数据开始进行开发。RedisJSON 和 RediSearch 用于存放此数据;图像存储在 AWS S3 上。

整个应用程序使用 Next.js 构建,客户端作为用于调用端点的演示和服务器。端点是

  • 来自某一类别的随机图像
  • 来自数据库的随机图像
  • 来自数据库的特定图像
  • 来自某一类别的特定图片
  • 数据库或类别中所有图片的 JSON 输出

获取有关 Nabil 提交内容的更多详细信息
查看 Pic-Placeholder 演示
查看 Pic-Placeholder 仓库

弗雷德·斯宾塞:Meatballs.live,一个发现有趣的社交对话的工具

我叫弗雷德·斯宾塞,是美国的一名体验架构师。我是 Elm Story 的创始人,Elm Story 是一款交互式故事设计的工具及平台。

项目:Meatballs.live 由 Redis Stack 和 HackerNews 提供支持,它是一款自动化推荐网络和网络应用程序,用于发现有关社交新闻的有趣对话。 

哪些技术组件帮助你实现了这个项目?

整个 Meatballs.live 项目都用 TypeScript 编写,充分利用了 Redis Stack 特性,包括 RedisGraphRedisJSONRedisTimeSeries发布/订阅缓存。我广泛地使用了 RedisInsight,以便在实时收集数据时直观地展示见解。Redis Cloud 托管了主 Redis 数据库。

dev.to 上了解更多的技术细节。

Meatballs.live 旨在解决哪些专业的痛点?

你可以将这个项目视为一个“超级聚合器”,该聚合器旨在从不同的聚合源中 摄取、重组和混合数据。

通过连接和分析大量结构化时间数据,meatballs.live 可以生成每天的热门故事集合,重点关注评论部分。每天的集合充当最引人入胜的评论及相关故事的推荐。应用体验可以减少上瘾的滚动,从而节省用户的时间和认知负担。时间方面提供了背景。 

实时聊天功能使 meatballs.live 用户能够进行实时互动。来自 Hacker News 的最新评论与流混合,提供了相关线程的链接。

你是否计划对这个项目做更多的事情?如果你有时间对其进行改进,你会增加哪些内容?

我的首要任务是整理历史数据。使用一个数据源,Meatballs.live 每月会生成 1 GB 的数据。考虑到当前应用的功能,不用内存存下所有这些数据既不必要也不高效。接下来,我希望增加对 Reddit 和 Twitter 等其他数据源的支持。 

我还想将摄取服务从 Node 移植到 Rust,增强实时聊天以支持更多实时见解,并扩展用户功能以包含收集反应。

使用Redis 堆栈重新组合大数据时,没有界限。

继续关注 Fred
查看 Fred 的帖子
在 Twitter 上关注 Fred:@r1tsuke / @elmstorygames

感谢您使用 Redis 进行创新

我们要感谢参加 dev.to 黑客马拉松的所有人。我们看到了部分真正有创意的想法实现,我们希望尽快看到这些基于 Redis 的应用程序进入市场! 

要查看更多使用 Redis 构建的应用程序,请访问我们的Launchpad站点,该站点包含各种引人入胜的演示,还可以为所有构建应用程序的人提供灵感。