数字技术将我们推向一个令人兴奋的新时代,并改变了生活的方方面面。随着通信变得即时,我们比以往任何时候都更加互联。居家工作现已成为常态,帮助我们在疫情期间转向新的工作方式。而通过在线参加工作相关活动来减少碳排放的能力意味着我们在应对全球变暖方面取得了更大的进展。延续这一趋势的是 Shamshir Anees 和他的团队,他们创建了一个可以托管数字拍卖的应用。通过使用 Redis,组件之间的数据传输以最高效率进行,为用户提供仪表板上的实时竞价更新。
让我们看看这是如何实现的。
您将构建一个允许用户参与数字拍卖的应用。该应用将允许用户创建账户、进行竞价,甚至设置自己的拍卖。下面我们将揭示所需的组件、它们的功能以及如何在此架构中部署它们。
准备好开始了吗?好的,让我们直接深入了解吧。
NodeJS 连接到 Redis Cloud 数据库。
前端通过 API 调用与 NodeJS 后端通信。
GET : /api/auctions
从 Auctions Hash 中获取所有键。
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
GET : /api/auctions/{auctionId}
按 id 获取每个拍卖物品。
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
拍卖物品的所有竞价数据
GET : /api/bidding/{auctionId}
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
GET : /api/settings
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
GET : /api/users/{email}
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
NodeJS 连接到 Redis Cloud 数据库。
前端通过 API 调用与 NodeJS 后端通信。
GET : /api/auctions
从 Auctions Hash 中获取所有键。
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
GET : /api/auctions/{auctionId}
按 id 获取每个拍卖物品。
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
拍卖物品的所有竞价数据
GET : /api/bidding/{auctionId}
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
GET : /api/settings
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
GET : /api/users/{email}
NodeJS 使用 Redis 模块来与 Redis Cloud 配合工作。然后使用 Redis 凭据和 hmget() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
https://github.com/redis-developer/NR-digital-auction-backend
'npm install' 是一个 npm cli 命令,它执行预定义的操作,即安装 package.json 中指定的依赖项
npm install
export REDIS_END_POINT=XXXX
export REDIS_PASSWORD=XXX
export REDIS_PORT=XXX
npm run build
npm start
git clone https://github.com/redis-developer/NR-digital-auction-frontend
npm run build
npm start
您将使用带有 Redis Stack 的 Redis Cloud 数据库来安装数据。
类型 - Redis Hash
用于存储对每个拍卖物品进行的竞价
NodeJS 连接到 Redis Cloud 数据库。前端通过 API 调用与 NodeJS 后端通信。
POST : /api/bidding
请求体包含要插入数据库的 JSON 数据。
请求体中的 AuctionId 用作键
包含键的 JSON 数据
竞价数组包含对特定拍卖物品进行的所有竞价。
根据当前的 BidEndTime 和 BidTime,拍卖结束日期根据动态截标概念进行延长。
当前的动态截标逻辑 - 如果在拍卖结束前最后 5 分钟内有新的竞价,结束时间将延长 1 小时。
这将在 SaaS 解决方案中可配置。
NodeJS 使用 Redis 模块与 Redis Cloud 配合工作。使用 Redis 凭据和 hmset() 创建 Redis 客户端。这相当于用于将数据推送到 Redis 数据库的 HMSET 命令。
/api/settings
/api/users
当您进入数字拍卖的首页时,您会看到一系列待拍卖的物品(见下图)。点击“欢迎”按钮创建账户。
然后您将被带到注册页面。输入您的详细信息并点击“注册”。完成注册表单后,您将收到一封确认邮件来激活您的账户。
前往首页,查看所有物品及其拍卖详情。这里的所有数据都由 Redis Stack 和 Redis Cloud 填充。滚动页面,点击您想出价的物品。
当您点击一件物品时,您将在页面顶部看到出价过程的详细信息。您还可以选择设置提醒,以便在该物品的竞拍开始时收到电子邮件。
在图片右侧,您将看到该物品的最高出价。下方是不同用户之前出价的列表,该列表实时更新。
点击“出价”按钮进行出价。
要访问元数据信息或查看物品的更多图片,只需向下滚动页面(见下图)。
点击导航栏顶部的“我的出价”查看您的出价历史(见下图)。
点击导航栏顶部的“拍卖”查看所有即将到来的拍卖。
数字技术对现代生活的方方面面都产生了连锁反应。能够在线完成重要任务而非亲自办理,这革新了我们的生活方式,帮助我们减少碳排放,节省出行时间,并即时获取前所未有的海量数据。
然而,此类活动的成功取决于数据库实时传输数据的能力。传输中的任何中断都会在用户与拍卖之间造成断联,阻碍拍卖师对出价做出反应。这只会导致沮丧、疏离,并使用户彻底脱离应用。
但得益于 Redis,构成架构系统的组件变得更加紧密互联,因此数据能够实时发送、处理和接收。实现这一点为顺畅的出价过程铺平了道路,用户可以实时无中断地与事件互动,最终增强了应用的功能性。
NR-Digital-Auction 是使用 Redis 如何将创新变为现实的一个绝佳例子。全球的日常开发者正在试验 Redis,构建影响日常生活的应用,您也可以做到!
那么您可以使用 Redis 构建什么呢?如果您准备开始构建,请快速启动一个免费数据库 Redis Cloud。