黑马点评项目实战:从零搞定Redis 5.0+与MySQL 8.0配置,避开版本不兼容的坑

张开发
2026/4/2 15:52:02 15 分钟阅读
黑马点评项目实战:从零搞定Redis 5.0+与MySQL 8.0配置,避开版本不兼容的坑
黑马点评项目实战Redis 5.0与MySQL 8.0环境配置全攻略1. 环境准备避开版本陷阱的关键步骤刚接触黑马点评项目的开发者常会遇到一个典型问题明明按照教程一步步操作项目却无法启动。这往往源于环境版本不匹配——Redis版本低于5.0或MySQL驱动配置错误。我们先解决这两个核心依赖的配置问题。Redis版本选择项目使用了Stream数据类型这是Redis 5.0引入的特性。Windows平台默认安装的Redis 3.x版本无法支持会导致ERR unknown command XREADGROUP报错。解决方案有两种方案A使用Docker快速部署Redis 5.0推荐# 创建配置文件目录 mkdir -p /mydata/redis_single_6379/{conf,data} # 编写redis.conf echo appendonly yes /mydata/redis_single_6379/conf/redis.conf # 启动容器 docker run --name redis_6379_single -p 6379:6379 \ -v /mydata/redis_single_6379/data:/data \ -v /mydata/redis_single_6379/conf/redis.conf:/etc/redis/redis.conf \ -d redis:5.0 redis-server /etc/redis/redis.conf方案B手动编译安装Redis 5.0适合Linux/macOSMySQL驱动配置项目原始pom.xml中配置的是MySQL 5.x驱动与MySQL 8.x不兼容。需要检查并修改dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId !-- 删除或注释掉旧版本配置 -- !-- version5.1.47/version -- /dependency提示Spring Boot 2.3.x默认使用MySQL 8.0驱动无需显式指定版本号。若使用其他Spring Boot版本需确认驱动兼容性。2. 配置文件深度调优超越基础配置完成基础环境搭建后需要精细调整application.yaml配置。以下是关键配置项的优化建议配置项原始值优化建议作用说明spring.datasource.url基础连接串添加useUnicodetruecharacterEncodingutf8解决中文乱码问题spring.redis.lettuce.pool默认配置设置max-active: 20提高并发连接数jackson.default-property-inclusion未配置设为non_null过滤空值字段Redisson客户端特殊配置Configuration public class RedissonConfig { Bean public RedissonClient redissonClient() { Config config new Config(); // 生产环境建议添加连接超时配置 config.useSingleServer() .setAddress(redis://your_ip:6379) .setPassword(your_password) .setConnectTimeout(3000) // 3秒连接超时 .setIdleConnectionTimeout(60000); // 空闲连接超时 return Redisson.create(config); } }常见配置误区Redis地址未改为实际IPlocalhost仅限本地开发MySQL时区配置不当导致时间偏差建议使用Asia/Shanghai忘记初始化Redis Stream项目启动前需执行XGROUP CREATE命令3. 典型报错分析与解决方案3.1 Redis相关报错错误现象NOGROUP No such key stream.orders这是Redis Stream未初始化的表现需要手动创建消费者组# 进入Redis容器 docker exec -it redis_6379_single redis-cli # 执行初始化命令 XGROUP CREATE stream.orders g1 $ MKSTREAM连接超时问题排查步骤检查防火墙是否开放6379端口确认Redis配置中bind设置是否正确测试telnet连接telnet your_redis_ip 63793.2 MySQL驱动兼容性问题当出现No suitable driver found错误时按以下流程排查确认pom.xml中MySQL驱动版本与服务器版本匹配检查driver-class-name配置MySQL 5.xcom.mysql.jdbc.DriverMySQL 8.xcom.mysql.cj.jdbc.Driver清理Maven依赖并重新构建mvn clean install -U4. 接口测试实战技巧黑马点评项目采用Token鉴权机制测试时需要注意获取Token流程POST/user/code获取验证码响应头中的verify-code字段POST/user/login使用验证码登录响应中的data字段即为Token携带Token的正确方式GET /api/your_endpoint HTTP/1.1 Authorization: your_token_value Content-Type: application/jsonPostman测试技巧使用Tests脚本自动提取Token// 在登录请求的Tests标签中添加 if (pm.response.code 200) { pm.environment.set(auth_token, pm.response.json().data); }设置环境变量全局携带Token注意接口返回401错误时首先检查请求头是否包含正确的Authorization字段而非简单的token字段。5. 开发环境优化建议使用Docker Compose统一管理服务version: 3 services: redis: image: redis:5.0 ports: - 6379:6379 volumes: - ./redis_data:/data mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: your_password ports: - 3306:3306Lombok插件安装 项目大量使用Lombok注解确保IDE安装对应插件IntelliJ: 安装Lombok插件并启用注解处理Eclipse: 安装Lombok.jar并配置agent热部署配置 在pom.xml中添加devtools依赖dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-devtools/artifactId scoperuntime/scope optionaltrue/optional /dependency实际开发中发现使用Redis 6.x版本时性能提升明显特别是在处理大量Stream数据时。建议有条件的开发者直接使用Redis 6.2版本但需要注意部分命令语法可能有细微变化。

更多文章