0

我在我的项目中使用 Redis 进行缓存,我使用 Spring 进行设置,您可以通过下面提到的链接了解我在项目中做了什么。 http://caseyscarborough.com/blog/2014/12/18/caching-data-in-spring-using-redis/

该代码在过去 6 到 8 个月的生产环境(Rhel 7-EC2 实例)中运行良好。现在突然开始出现“不允许 ERR 操作”错误


org.springframework.dao.InvalidDataAccessApiUsageException: ERR operation not permitted; nested exception is redis.clients.jedis.exceptions.JedisDataException: ERR operation not permitted
    at org.springframework.data.redis.connection.jedis.JedisExceptionConverter.convert(JedisExceptionConverter.java:44) 

因此,我们无法从 Redis 服务器获取数据。因此我们的应用程序无法正常工作。

我确实搜索过这个问题,我已经浏览了 redis(错误)ERR operation not allowed之类的链接

这表示要检查 redis.conf 文件中的“requirepass”是否已注释,但是当我在生产环境中看到 redis.conf 文件时,它被注释掉了。即使通过它的评论,我在 redis-cli "AUTH foobared" 上运行了下面提到的命令运行上述命令后,它没有工作。

注意:但是当我们杀死正在运行的 Redis 实例并重新启动它时,它会开始正常工作,然后它不会给出“ERR operation not allowed”错误。

重新启动 Redis 后,系统开始正常工作一到两个小时,然后再次出现相同的问题,并且在我重新启动 Redis 服务器后它会再次消失。

注意:我尝试将 Redis 服务器从 2.6 升级到 3,即使它不起作用

4

1 回答 1

0

你的 Redis 是否暴露在互联网上?很可能是CONFIG SET requirepass攻击。

在此处查看此 SO 问题和@antirez 评论

于 2015-12-11T05:39:18.197 回答