使用RedisJSON克隆HackerNews
Hacker News(有时缩写为HN)是一个专注于计算机科学和创业精神的社交新闻网站。这是一个HackerNews克隆,构建于React、NextJS作为前端,NodeJS、ExpressJS和Redis作为后端。该应用程序使用RedisJSON模块存储数据,使用RedisSearch模块进行搜索。
#
步骤1。安装先决条件#
安装以下软件包- NPM v7.8.0
- 节点v15.10.0
#
步骤2.创建Redis企业云数万博体育彩据库点击这个链接要创建具有2个数据库万博体育彩的Redis Enterprise Cloud帐户,一个数据库启用RedisJSON模块,另一个数据库启用RedisSearch模块。请注意,在免费订阅下,只能启用一个模块。如果要创建2个数据库,则可能需要创建2个不同的订阅。
保存数据库端点URL和密码以供将来参考
#
第三步。克隆存储库#
步骤4.设置环境变量.env副本。示例到.env并提供如下所示的值:
#
步骤5.运行开发人员环境#
第六步。将黑客新闻API拉入种子数据库使用美国石油学会,它提取最新的黑客新闻数据。接下来,你需要从黑客新闻中挖掘头条新闻。首先创建一个moderator:password123
#
步骤7。访问HackerNews URL打开https://localhost:3001,您应该能够访问HackerNews登录屏幕如下所示:
#
工作原理#
通过屏幕#
报名确保用户(其中用户名为andy1)不存在。
获取并增加用户集合中的下一个id。
创建用户:63哈希和json。(json also collects authToken and password hash etc)
#
登录找到用户
确保密码正确
比较密码和新密码哈希,如果成功,则创建cookie
#
项目列表页检查用户是否已切换特定项的隐藏属性。
如果它不为空
如果它是空数组
从JSON获取所有项目
收到最近一周内寄出的物品
注意1615652598是比当前时间戳早1周的时间戳
#
项目详细信息首先获取item对象
查找item:1的根注释
得到那些评论
使用每个注释的子注释,获取子注释
重复此操作,直到解决所有注释
#
提交获取下一个项目的id并增加它
创建散列和JSON索引
#
更新配置文件- 获取用户
- 更新新用户
#
审核日志屏幕- 查找所有审核日志
- 获取审核日志
#
搜索- 获取包含“fa”的项目
- 通过json获取这些项目
#
示例命令#
有两种类型的字段,索引字段和非索引字段。- 索引字段将使用HSET/HGET存储在散列中。
- 非索引字段将存储在JSON中。
- 创建重新搜索索引
创建schema时,应该创建索引。
- 下降再搜索指数
如果架构已更改,则应删除/更新索引
- 得到RediSearch信息
验证字段索引是否正确。如果没有,它将更新索引字段或删除/重新创建。
- 创建一个新用户
它将需要新的哈希和新的JSON记录
更新用户
查找用户名为“andy”的用户
首先找到用户的散列
获取JSON对象以获取相关的JSON对象
查找id为andy1或andy2的用户
查找id不是andy1或andy2的用户
查找id为andy1或用户名为andy的用户
查找id为andy1,用户名为andy的用户
根据用户名查找前10个用户订单
查找下10个用户
从多个键获取