❤啊!这就被黑了?❤ Redis 报 EXECABORT Transaction discarded because of previous errors 错误及解决方案❤️

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: ❤啊!这就被黑了?❤ Redis 报 EXECABORT Transaction discarded because of previous errors 错误及解决方案❤️

1 错误背景


由于前面的错误导致Redis命令事务项执行丢弃。


2 在Java应用程序层报的是未处理的异常


2021-09-18 08:55:25.005 ERROR 4812 --- [quartzScheduler_Worker-1] org.quartz.core.JobRunShell : Job redis.cn.example.com.core.schedue.quartz.RedisQuartzJob threw an unhandled Exception.
org.springframework.data.redis.RedisSystemException: Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: EXECABORT Transaction discarded because of previous errors.


3 查看Redis log日志发现真正的错误


一般情况下Redis log日志文件在Redis安装目录下,名为server_log.txt

根据时间戳,到安装Redis的目录中找到其log日志。发现是因为RDB文件读写错误导致的Redis异常。


[3476] 18 Sep 08:50:20.005 * Background saving started by pid 4752
[3476] 18 Sep 08:50:20.107 # fork operation complete
[3476] 18 Sep 08:50:20.107 * Background saving terminated with success
[3476] 18 Sep 08:51:06.609 # Failed opening the RDB file init.bat (in server root dir C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp) for saving: Permission denied
[3476] 18 Sep 08:55:21.001 * 10 changes in 300 seconds. Saving...
[3476] 18 Sep 08:55:21.001 * Background saving started by pid 4264
[3476] 18 Sep 08:55:21.101 # fork operation complete
[3476] 18 Sep 08:55:21.101 # Background saving error

而Redis的文件夹权限没有问题,因此只能是路径问题了,可以看到此时RDB文件路径为C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,而配置文件里的RDB文件路径为C:\MiddleSoftware\redis,可以通过下述命令查询。


> 127.0.0.1@6379 connected!
> config get dir
dir
C:\MiddleSoftware\redis

证明RDB文件路径配置项被修改了。


4 结果分析


导致这种结果很大可能是因为Redis端口6379暴露在外网中,被别人篡改了配置文件。网上很多介绍如何利用Redis端口黑进别人的系统


5 解决方案


解决该问题有以下几个步骤:


1.修改配置文件中的 bind 参数为

bind 127.0.0.1

2.保护模式更改为yes

protected-mode yes

3.改为带密码访问

requirepass password

4.修改云服务器入站规则

关闭6379端口的访问

6 展望


其实外网有很多暴露端口的中间件或网络程序,有的因为没有设置密码或者密码强度不大而被人黑进来篡改数据或者利用算力导致资源浪费或者破坏,因此有必要加强对端口的安全管理。


Redis RDB文件是数据持久存储的一种方式,另一种方式是AOF,再次启动Redis时,服务会先从该文件中加载恢复数据。



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
缓存 监控 NoSQL
【Redis性能瓶颈揭秘】「调优系列」深入分析热Key的排查策略和解决方案
【Redis性能瓶颈揭秘】「调优系列」深入分析热Key的排查策略和解决方案
215351 12
|
4月前
|
监控 NoSQL Java
Redis之高并发超卖问题解决方案
在高并发的秒杀抢购场景中,常常会面临一个称为“超卖”(Over-Selling)的问题。超卖指的是同一件商品被售出的数量超过了实际库存数量,导致库存出现负数。这是由于多个用户同时发起抢购请求,而系统未能有效地控制库存的并发访问。
156 0
|
3月前
|
消息中间件 NoSQL Java
Redis Streams在Spring Boot中的应用:构建可靠的消息队列解决方案【redis实战 二】
Redis Streams在Spring Boot中的应用:构建可靠的消息队列解决方案【redis实战 二】
286 1
|
3天前
|
缓存 NoSQL 搜索推荐
Redis缓存雪崩穿透等解决方案
本文讨论了缓存使用中可能出现的问题及其解决方案。首先,缓存穿透是指查询数据库中不存在的数据,导致请求频繁到达数据库。解决方法包括数据校验、缓存空值和使用BloomFilter。其次,缓存击穿是大量请求同一失效缓存项,可采取监控、限流或加锁策略。再者,缓存雪崩是大量缓存同时失效,引发数据库压力。应对措施是避免同一失效时间,分散缓存过期。接着,文章介绍了Spring Boot中Redis缓存的配置,包括缓存null值以防止穿透,并展示了自定义缓存过期时间的实现,以避免雪崩效应。最后,提供了在`application.yml`中配置不同缓存项的个性化过期时间的方法。
|
11天前
|
缓存 NoSQL 搜索推荐
Redis缓存雪崩穿透等解决方案
本文讨论了缓存使用中的三个问题:缓存穿透、缓存击穿和缓存雪崩。为解决这些问题,提出了相应策略。对于缓存穿透,建议数据校验和缓存空值;缓存击穿可采用监控扩容、服务限流或加锁机制;缓存雪崩则需避免大量缓存同时过期,可设置随机过期时间。此外,文章还介绍了Spring Boot中Redis缓存配置,包括全局设置及自定义缓存过期时间的方法。
|
12天前
|
缓存 NoSQL PHP
【PHP 开发专栏】Redis 作为 PHP 缓存的解决方案
【4月更文挑战第30天】本文探讨了Redis作为PHP缓存的优势,如高性能、丰富数据结构、数据持久化和分布式支持。通过安装配置Redis、选择PHP客户端、执行读写操作及制定缓存策略实现缓存。应用场景包括页面、数据和会话缓存。但需注意数据一致性、过期时间、容量和安全问题,以确保应用稳定和安全。Redis能有效提升PHP应用响应速度和处理能力。
|
4月前
|
NoSQL Redis Windows
windows环境启动redis-server.exe出现闪退问题解决方案(亲测有效)
windows环境启动redis-server.exe出现闪退问题解决方案(亲测有效)
241 0
|
29天前
|
缓存 NoSQL 关系型数据库
MySQL与Redis的默契协作:解析数据一致性难题与解决方案
MySQL与Redis的默契协作:解析数据一致性难题与解决方案
25 0
MySQL与Redis的默契协作:解析数据一致性难题与解决方案
|
1月前
|
缓存 NoSQL 调度
【redis】ssm项目整合redis,redis注解式缓存及应用场景,redis的击穿、穿透、雪崩的解决方案
【redis】ssm项目整合redis,redis注解式缓存及应用场景,redis的击穿、穿透、雪崩的解决方案
119 0
|
1月前
|
NoSQL 应用服务中间件 Redis
Redis Pub/Sub: 实时消息传递的完美解决方案
Redis Pub/Sub: 实时消息传递的完美解决方案