当前位置: 首页 > news >正文

黑马程序员 Redis 踩坑及解决

文章目录

  • 实战篇
    • p30 短信登录-隐藏用户敏感信息
    • p50 优惠券秒杀-添加优惠券
    • p69 秒杀优化-异步秒杀思路
    • p81 达人探店-点赞排行榜
    • p87 好友关注-实现滚动分页查询
      • 问题 1
      • 问题 2
    • p90 附近商铺-实现附近商户功能

实战篇

p30 短信登录-隐藏用户敏感信息

问题描述:登录后会跳转到 index.html

解决办法

  • 更改 nginx-1.18.0\html\hmdp\login.html 第 87 行为:location.href = "/info.html"

  • 更改 UserController 中 /user/me 方法:

    @GetMapping("/me")public Result me(){// 获取当前登录的用户并返回UserDTO user = UserHolder.getUser();return Result.ok(user);}

p50 优惠券秒杀-添加优惠券

问题描述:访问 http://localhost:8080/shop-detail.html?id=1 不显示优惠券

解决办法

将 tb_seckill_voucher 表中的 end_time 改为当前时间之后的日期

在这里插入图片描述

使用 postman 添加优惠券的请求内容:

{"shopId": 1,"title": "100元代金券","subTitle": "周一至周五均可使用","rules": "全场通用\\n无需预约\\n可无限叠加\\不兑现、不找零\\n仅限堂食","payValue": 8000,"actualValue": 10000,"type": 1,"stock": 100,"beginTime": "2023-01-26T10:09:17","endTime": "2023-12-26T23:59:59"
}

p69 秒杀优化-异步秒杀思路

问题描述:根据用户信息生成 token.txt

解决办法:在测试类中添加如下方法

    @Testpublic void createToken() throws IOException {List<User> list = userService.list();PrintWriter printWriter = new PrintWriter(new FileWriter("E:\\token.txt"));for(User user: list){String token = UUID.randomUUID().toString(true);UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class);Map<String, Object> userMap = BeanUtil.beanToMap(userDTO, new HashMap<>(),CopyOptions.create().setIgnoreNullValue(true).setFieldValueEditor((fieldName, fieldValue)->fieldValue.toString()));String tokenKey = LOGIN_USER_KEY + token;stringRedisTemplate.opsForHash().putAll(tokenKey, userMap);stringRedisTemplate.expire(tokenKey, LOGIN_USER_TTL, TimeUnit.MINUTES);printWriter.print(token + "\n");printWriter.flush();}}

执行结果:

在这里插入图片描述

p81 达人探店-点赞排行榜

问题描述:详情页下面位置点赞无反应

在这里插入图片描述

解决办法

  • 在 nginx-1.18.0\html\hmdp\blog-detail.html 第 78 行添加 @click="addLike()"

在这里插入图片描述

p87 好友关注-实现滚动分页查询

问题 1

问题描述:实现滚动查询的方法 queryBlogOfFollow 中,关于 offset 计算有问题,下面的 os 变量只记录了单页数据中最后一个 score 的重复次数,并不能作为 下次查询的 offset

在这里插入图片描述

解决办法:在上述代码末尾添加如下内容

os = minTime == max ? os + offset : os;

案例中,使用 ZSet 实现排序时,注意参数的设置规则:

reverseRangeByScoreWithScores(K key, double min, double max, long offset, long count);
  • min:0,这里使用时间戳作为 score,所以最小值可以直接给 0
  • max(注意)
    • 第一次查询:当前时间戳
    • 非第一次查询:上次查询的最小时间戳
  • offset(注意)
    • 第一次查询: 0
    • 非第一次查询
      • 如果当前页最后一条数据的 score 与上一页最后一条数据的 score 相同,则下一页的 offset 就是上一页的 offset + 当前页最后一个 score 的重复次数
      • 如果当前页最后一条数据的 score 与上一页最后一条数据的 score 不相同,则下一页的 offset 就是当前页最后一个 score 的重复次数
  • count:给定每次查询个数

问题 2

问题描述:向下滚动分页时,如果数据很多,后续滚动无效果,不触发查询下一页

解决办法:在 nginx-1.18.0\html\hmdp\info.html 页面,添加 <div style="height:101%"> 标签作为 <div class="blog-box" > 的父级,具体如下:

在这里插入图片描述

p90 附近商铺-实现附近商户功能

问题描述:当页面展示的数据高度不超过 <div class="shop-box"> 容器的高度时,无法实现滚动

解决办法:在 nginx-1.18.0\html\hmdp\shop-list.html 页面,添加 <div style="height:101%"> 标签作为 <div class="shop-box" > 的父级,具体如下:

在这里插入图片描述

相关文章:

黑马程序员 Redis 踩坑及解决

文章目录实战篇p30 短信登录-隐藏用户敏感信息p50 优惠券秒杀-添加优惠券p69 秒杀优化-异步秒杀思路p81 达人探店-点赞排行榜p87 好友关注-实现滚动分页查询问题 1问题 2p90 附近商铺-实现附近商户功能实战篇 p30 短信登录-隐藏用户敏感信息 问题描述&#xff1a;登录后会跳转…...

Matlab实现粒子群算法

粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;PSO&#xff09;是一种群体智能算法&#xff0c;通过模拟自然界中鸟群、鱼群等生物群体的行为&#xff0c;来解决优化问题。 在PSO算法中&#xff0c;每个个体被称为粒子&#xff0c;每个粒子的位置表示解空间中…...

tailwindcss 写原生html

需要注意&#xff1a;html文件中引入的是output.css input.css写那三行预留的就可以了打包的时候只要打包html output.css img文件夹句ok&#xff0c;其他都不用原理是运行时生产output.css文件&#xff0c;直接【注意&#xff01;注意&#xff01;注意&#xff01;class"…...

Java开发一年不到,来面试居然敢开口要20K,面完连8K都不想给~

前言 我的好朋友兼大学同学老伍家庭经济情况不错&#xff0c;毕业之后没两年自己存了点钱加上家里的支持&#xff0c;自己在杭州开了一家网络公司。由于公司不是很大所以公司大部分的开发人员都是自己面试的&#xff0c;近期公司发展的不错&#xff0c;打算扩招也面试了不少人…...

LeetCode题解 20(17,79) 电话号码的字母组合,单词搜索<回溯>

文章目录电话号码的字母组合(17)代码解答单词搜索(79)代码解答电话号码的字母组合(17) 思路: 根据题意我们必须根据数字获取对应的字符数组&#xff0c;因此我们先定义1个字符数组表示这个电话表 private String[] letters {"","","abc","…...

路径之谜 蓝桥杯 89

题目描述小明冒充 X 星球的骑士&#xff0c;进入了一个奇怪的城堡。城堡里边什么都没有&#xff0c;只有方形石头铺成的地面。假设城堡地面是 nn 个方格。如下图所示。按习俗&#xff0c;骑士要从西北角走到东南角。可以横向或纵向移动&#xff0c;但不能斜着走&#xff0c;也不…...

Mysql数据库如何调优

MYSQL数据库调优 索引 1、对于常用的查询字段加索引&#xff0c;但如果常用字段只有几个常量值就不需要加索引&#xff0c;或者使用索引会失效的情况&#xff1b; 2、索引失效的情况&#xff1a; ​ 1、索引列使用函数&#xff0c;计算&#xff08;加减乘除等&#xff09; …...

CAN(FD)记录仪在新能源汽车整车控制器(VCU)、电池管理系统(BMS)、电机控制器(MCU)、发动机ECU中的应用,免去出差烦恼

今天介绍CAN(FD)记录仪在新能源汽车整车控制器&#xff08;VCU&#xff09;、电池管理系统&#xff08;BMS&#xff09;、电机控制器&#xff08;MCU&#xff09;、发动机ECU中的应用 第一步&#xff1a;新能源汽车整车控制器&#xff08;VCU&#xff09;先供上电&#xff0c…...

【设计模式】23种设计模式之七大原则

【设计模式】23种设计模式之七大原则什么是设计模式的原则1、单一职责原则基本介绍案例分析注意事项2、接口隔离原则基本介绍案例分析代码实现3、依赖倒转原则基本介绍案例分析依赖传递的三种方式注意事项4、里氏替换原则关于继承性的思考和说明基本介绍案例分析5、开闭原则ocp…...

python - 文件操作

1. 概念 计算机内存通常分为两种类型&#xff1a;主存储器和辅助存储器。 主存储器是计算机中最重要的存储器类型之一。它是计算机中用于存储正在运行的程序和数据的存储器。主存储器通常是易失性的&#xff0c;这意味着当计算机关闭时&#xff0c;其中存储的数据将被删除。主存…...

docker打包golang应用

一、错误的打包方式在本地环境编译&#xff0c;然后将可执行程序放入 alpine(docker.io/alpine:latest)准备web程序package mainimport ("fmt""net/http" )func main() {server : &http.Server{Addr: ":8888",}http.HandleFunc("/"…...

redis 内容总结

目录redis 内容列举Redis和Memcached比较Redis简介1、Redis 数据结构2、Redis的持久化机制3、Redis 内容管理&#xff08;淘汰策略/删除策略&#xff09;4、Redis 事务5、Redis 缓存三大问题6、Redis 集群7、Redis 应用redis 内容列举 官网&#xff1a;https://redis.io/ 中文…...

贪心算法(一)

一、概念 贪心算法的核心思想是&#xff0c;在处理一个大问题时&#xff0c;划分为多个局部并在每个局部选择最优解&#xff0c;并且认为在每个局部选择最优解&#xff0c;那么最后全局的问题得到的就是最优解。 贪心算法可以解决一些问题&#xff0c;但是不适用于所有问题&a…...

【栈和队列OJ题】有效的括号用队列实现栈用栈实现队列设计循环队列

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录OJ题1.有效的括号1.1…...

kuernetes 资源对象分析报错

文章目录1. pod 状态1.1 容器启动错误类型1.2 ImagePullBackOff 错误1.3 CrashLoopBackOff1.4 Pending2. Service 连接状态3. Ingress 连接状态1. pod 状态 创建一个 pod-status.yaml apiVersion: v1 kind: Pod metadata:name: runninglabels:app: nginx spec:containers:- na…...

动态内存的开辟

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…...

【蓝桥杯-筑基篇】搜索

&#x1f353;系列专栏:蓝桥杯 &#x1f349;个人主页:个人主页 目录 递归树 1.递归构建二进制串 2.全排列的 DFS 解法 3.全排列的 BFS 解法 4.数的划分法 5.图书推荐 递归树 递归树是一种用于分析递归算法时间复杂度的工具。它可以将递归算法的执行过程可视化&#xf…...

week5-质数-最大公约数-快速幂-组合计数-博弈论

蓝桥 等差数列——欧几里得算法质数质数的判定——试除法分解质因数——试除法筛质数——埃氏筛法筛质数——线性筛法质数问题质数距离约数试除法求约数约数个数约数之和最大公约数-欧几里得算法(辗转相除法)扩展欧几里得算法裴蜀定理应用——线性同余方程消灭老鼠Hankson的趣…...

CloudCompare 二次开发(6)——插件中拖拽添加Qt窗口(区域生长算法为例)

目录 一、概述二、插件制作三、Cmake编译四、插件代码五、结果展示一、概述 手动拖拽的方式搭建Qt对话框界面的制作流程,以PCL中的点云区域生长算法为例进行制作。 二、插件制作 1、将....\plugins\example路径下的ExamplePlugin复制一份并修改名字为CCPointCloudProcess。 …...

2023值得推荐的高颜值Vue3.0 Web PC端UI框架,赶紧收藏学习!

Hello&#xff0c;我是前端胡说&#xff0c;本期给大家带来2023值得推荐的Vue3.0 UI组件库&#xff0c;希望大家喜欢&#xff01; Vue3 正式发布已经有一段时间了&#xff0c;2022年2月也正式变成 Vue 项目的默认版本。在过去一年多的时间里&#xff0c;各大组件库、框架也紧跟…...

JPEXS Flash反编译器技术架构解析:遗留Flash资产现代化迁移方案

JPEXS Flash反编译器技术架构解析&#xff1a;遗留Flash资产现代化迁移方案 【免费下载链接】jpexs-decompiler JPEXS Free Flash Decompiler 项目地址: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler 在数字化转型进程中&#xff0c;大量遗留的Flash应用程序成为…...

BlueArchive-Cursors:为你的Windows桌面注入二次元灵魂

BlueArchive-Cursors&#xff1a;为你的Windows桌面注入二次元灵魂 【免费下载链接】BlueArchive-Cursors Custom mouse cursor theme based on the school RPG Blue Archive. 项目地址: https://gitcode.com/gh_mirrors/bl/BlueArchive-Cursors 还在使用Windows默认的单…...

加法器优化:从并行前缀到AXON框架的技术演进

1. 加法器优化&#xff1a;从经典架构到AXON框架的演进在数字电路设计中&#xff0c;加法器作为最基础的算术运算单元&#xff0c;其性能直接影响整个系统的时钟频率和能效表现。传统加法器设计面临一个核心矛盾&#xff1a;如何在延迟&#xff08;Delay&#xff09;、功耗&…...

基于 Harmony6.0 的优惠聚合应用实战:Flutter 页面构建与高质感 UI 设计解析

基于 Harmony6.0 的优惠聚合应用实战&#xff1a;Flutter 页面构建与高质感 UI 设计解析 前言 随着 HarmonyOS NEXT 与 Harmony6.0 生态逐渐成熟&#xff0c;越来越多开发者开始关注鸿蒙平台上的跨端开发方案。相比传统 Android 应用开发&#xff0c;Harmony6.0 更强调分布式能…...

学生党福音:用最便宜的TT马达和STM32F103C8T6,我焊出了能遥控的平衡小车

低成本DIY平衡小车&#xff1a;TT马达与STM32的极致性价比方案 当我在宿舍里第一次看到那辆价值近千元的商业平衡小车时&#xff0c;脑海中立刻浮现出一个问题&#xff1a;能不能用更便宜的材料实现类似功能&#xff1f;作为一名预算有限的学生&#xff0c;我开始探索如何用最…...

终极指南:3步解决Dell G15笔记本过热问题,开源温度控制中心完全解析

终极指南&#xff1a;3步解决Dell G15笔记本过热问题&#xff0c;开源温度控制中心完全解析 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 你是否在游戏时遭遇…...

Pikachu 靶场 XSS 通关笔记:从反射型到盲打与过滤绕过

目录 一、基础 XSS 类型 1. 反射型 XSS (GET)2. 反射型 XSS (POST)3. 存储型 XSS4. DOM 型 XSS5. DOM 型 XSS-x 二、进阶 XSS 场景 6. XSS 之盲打 (Blind XSS)7. XSS 之过滤8. XSS 之 htmlspecialchars9. XSS 之 href 输出10. XSS 之 JS 输出 三、XSS 绕过速查表 四、Pikach…...

下载 | Win11 官方精简版,系统占用空间极少!(4月末更新、Win11 IoT物联网 LTSC版、适合老电脑安装使用)

⏩ 【资源A023】Win11 LTSC 2024 ISO系统映像 &#x1f536;Win11 物联网IoT LTSC版&#xff0c;默认无TPM等硬件限制&#xff0c;更方便老电脑安装使用。LTSC是长期服务渠道版本&#xff0c;网友俗称“老坛酸菜版”&#xff0c;相当于微软官方的精简版Win11&#xff0c;精简了…...

Playwright MCP终极指南:让大语言模型拥有浏览器自动化的超能力

Playwright MCP终极指南&#xff1a;让大语言模型拥有浏览器自动化的超能力 【免费下载链接】playwright-mcp Playwright MCP server 项目地址: https://gitcode.com/gh_mirrors/pl/playwright-mcp Playwright MCP&#xff08;Model Context Protocol&#xff09;是微软…...

EDA工程师成长与验证技术演进:从算法到芯片的实践闭环

1. 从算法到芯片&#xff1a;一位EDA工程师的成长路径解析在半导体这个行当里待久了&#xff0c;你会发现&#xff0c;那些真正能把工具做“透”、把流程理“顺”的人&#xff0c;往往自己就亲手“焊”过板子、调过RTL、追过时序违例。Prakash Narain的故事&#xff0c;就是一个…...