最近,我已经完成了大三的最终设计,并且我独立地完成了博客社区。主要技术堆栈是:
前端:next.js + mobx + ts + antd;
背景管理系统:vue3.0 + pinia + ts + elementui
后端:Next.js + TS + Alibaba Cloud OSS Storage + REDIS
在开发过程中,我遇到了很多坑,我将总结一下在开发过程中通过文章启动的坑和一些小体验。
因为我发现Next.js是一个完整的堆栈框架,所以可以在其API路径下写入接口代码。该文章排名和作者排名的实施。在下面,我将使用Next.js分享我的经验和遭遇,以操作Redis以操作Redis.go到PIT?
1.在网站上阅读统计数据
该图是为了计算过去一周用户访问该网站的卷数据的更改。
这张照片是为了显示用户的总读数(6次),以及今天新添加的阅读量(2次)
PS:样式有点丑陋,并且UI尚未得到优化。
2.赞美排名,作者排名
显示流行文章和作者的排名
技术选择:如果我们使用数据库,则无法搜索数据库的完整表。如何获得排名,如果有10,000名作者,您将获得10,000茶来获得排名。Essenceandredis为真实的时间统计排名提供有序的数组。将数组设置为统计访问量和其他数据(设置是一个不可用的数组,因此您可以避免使用多个用户访问量的记录)
因此,如何在Next.js中使用redis非常简单,但是夜晚的信息很少(哭泣)
步骤1:如果您没有REDIS,请参阅本文下载https://blog.csdn.net/qq_217185333/article/details/121045511文件
我在Internet上检查了很长时间,但没有看到使用REDIS的一些使用。。评估
源代码链接:https://github.com/vercel/next.js/tree/canary/canary/examples/with-redis
在文件夹的LIB目录中创建一个新的redis.ts文件夹
获取!它将仅使用,以下三种情况用于在Next.js中使用redis。
在页面/api/addview.ts上有一个案例(本网站的总访问和每日访问量)
需求:用户在当今用户的主页时记录一次访问数量,但是一天中的用户访问了很多次。该网站被认为是一次采访。
以上是我使用eChart线图获得的7天访问量
以及总访问者和今天的访问量(您可以看到网站的总访问为6,今天的访问为2)
PS:样式有点丑陋,并且UI尚未得到优化。
因此,我必须记录用户访问的总数和每日用户访问量
我们以Redis的名义使用了20220512,如何生成20220512的时间戳
在Utils工具类中定义
实现源代码(页/api/addview.ts)
最好查看Redis上的Redis操作的某些功能。
附加新秀教程的链接:https://www.runoob.com/redis/redis-sets.html
这是我返回的异常信息
你可以看到
以上是redis的可视化接口
百度网络磁盘链接:https://pan.baidu.com/s/15xvrpct8mkp2ut8pobht3g
如果我们想获取这些用户浏览的信息(过去七天内的增长次数,总用户的看法,今天的新增长)
1.获取网站的总用户视图并立即添加
获取过去一周每天用户观点的数据更改
首先,我们必须获得20220506、201220507、20120508、20220509、20220510、20220511、20220512、20220512、20220512
因为我想获得7天,所以我们必须检查七张桌子,我太多了,我只是想到了这种承诺。
将数据和工作日期传递到前端主要是为了使显示前端折叠图的X轴。切片(4)操作以获取后续0512
它们是文章排名和作者排名
以下实现了简单的排名(通过Redis随附的有序数组实现)
首先:预先了解REDIS的有序集(排序集)|runoob.com
值是本文的相关信息,并且有分数。此分数是有序数组订单的关键。我们可以直接调用API以获取此有序组中每个字段的分数排名
每次用户喜欢这篇文章时,我们都必须在Redis中的文章分数中添加一个
ARCECLEDATA是上面图片上方的Article_id和Article_tital的组合对象。这边走
获得排名
同样,用户排名,实现方法:
在每个用户称为发布文章接口中,执行以下操作:
获取用户排名数据(前五名):
原始:https://juejin.cn/post/7097150195426656270