1.应用场景
主要用于学习Redis 有序集合【SortedSet】类型,实现排行榜功能 |
2.学习/操作
1.文档阅读https://laravelacademy.org/post/22169 // 基于 Redis 有序集合实现 Laravel 热门浏览文章排行榜功能 // 2021-03-23 - 高性能 Redis 实战 2.整理输出代码实现:
2.1 准备模型类和数据表1. 执行 php artisan migrate
2. 成功生成数据表 2. 2 热门浏览文章排行榜功能实现
2.3 测试热门浏览文章排行榜1 生成模型工厂生成数据和生成模拟请求文件
2 执行模拟访问 使用了 Laravel 自带的 HTTP 客户端发起对
出现如下场景,一直执行了几分钟, 还没有停下来, 通过大概看了输出内容,似乎出了问题,于是终止该进程 通过查看过程,代码,判断应是URL的问题,这里sail并没有配置虚拟主机域名,使用的是localhost,于是将 http://redis-demo.test/posts/ 换成 http://localhost/posts/再次执行上述命令 此时,又出现报错 SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known (SQL: truncate table `posts`) 分析报错提示,应该是没找到mysql服务名 重新执行迁移回退和再次迁移
再次执行
同样出现最初的报错,重现检查整个过程,究竟哪里出了问题,最后发现, 是路由文件, 没有引入PostController 再次执行 此时,开始正确输出 【输出的内容正是PostController控制器中show 方法return的内容】 查看数据库Posts数据表的内容和redis的数据 Redis // 同时可以看到,上节课的全站访问 PV的数据也在变化 整个过程大概需要几分钟,请耐心等待 3 浏览器中访问获取热门文章排行榜数据 http://localhost/posts/popular 又出现幺蛾子了, 居然提示404 检查了遍路由,路由没发现问题 但是就是不行, 如果将 /posts/popular 改为 /posts-popular 或者 将show 换成 popular 都可以正常访问 如下访问结果 http://localhost/posts-popular http://localhost/posts/1 改回后,依然不行, 初步定位是 /posts/popular 路由存在问题,而且应该有路匹配的问题,没办法正常解析到popular方法中, 但是基于Laradock环境是没有问题的,所以应该是docker sailer 存在bug~, 接下来就是查看一下问题,提一个issue,当然能解决是最好的~
后续补充 ... |
3.问题/补充
TBD |