Redis - ERR unknown command ‘EVAL‘. channel

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis - ERR unknown command ‘EVAL‘. channel

报错

Exceptioninthread"pool-25-thread-20"org.redisson.client.RedisException: ERRunknowncommand'EVAL'. channel: [id: 0x06fc3a14, L:/11.57.1.15:6694-R:192.168.200.152/192.168.200.152:26378] command: (EVAL), params: [if (redis.call('hexists', KEYS[1], ARGV[3]) ==0) thenreturnnil;end; localcounter=redis.call('h..., 2, lock, redisson_lock__channel:{lock}, 0, 30000, 920d0c4a-1c15-4616-bb41-3ed66a69233e:17177]

解决方式

网上大部分解决该问题的方法都是:排查1、排查2,但是经过验证,小编还发现可能是 排查3 的情况!!!

排查1、检查 redis 版本是否大于等于2.6.0

排查2、打开 redis.conf 配置文件,检查是否有rename-command EVAL ""这项配置?如果有,注释掉# rename-command EVAL "",重启 redis 即可

排查3、其实还需要考虑是否是哨兵模式,就是 Config 配置的时候,如果是哨兵模式的端口,改成真实 redis 的端口即可,因为哨兵模式不支持 'EVAL'。

Ps:Sentinel使用的服务器命令表和普通服务器也不同,命令表里没有SETDBSIZEEVAL等这些命令,所以Sentinel不能执行这些命令,所以在使用 Redisson 分布式锁的时候,一定要连接的是普通服务器,而不能是哨兵模式。

相关实践学习
基于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
目录
相关文章
|
5月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
261 3
|
3月前
|
缓存 分布式计算 NoSQL
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
大数据-43 Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
41 2
|
NoSQL Java Redis
redis.clients.jedis.exceptions.JedisDataException: ERR Syntax error, try CLIENT (LIST | KILL ip:port
redis.clients.jedis.exceptions.JedisDataException: ERR Syntax error, try CLIENT (LIST | KILL ip:port
|
NoSQL 安全 Redis
【Redis异常】redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password
【Redis异常】redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password
298 0
|
8月前
|
缓存 NoSQL 中间件
redis内存溢出报错--OOM command not allowed when used memory > 'maxmemory'
该内容是关于Redis缓存服务器的使用指南。通过Xshell连接IP地址为25.218.153.193或206的主机,进入/data/iuap/middleware/redis-30001/bin目录,使用`redis-cli`连接到IP为206的30003端口。登录时需`auth yonyou*123`,可运行`info`和`info memory`查看状态,`flushall`清理缓存。在清理前,要备份/data/iuap/middleware/redis-30003/data/下的.aof和.rdb文件,利用tar命令打包并移至/tmp目录。
|
NoSQL Java 测试技术
Springboot2.x集成lettuce连接redis集群报超时异常Command timed out after 6 second(s)
最近在对一新开发Springboot系统做压测,发现刚开始压测时,可以正常对redis集群进行数据存取,但是暂停几分钟后,接着继续用jmeter进行压测时,发现redis就开始突然疯狂爆出异常提示:Command timed out after 6 second(s)......
437 0
|
NoSQL Redis
node-redis:ErrorReply: ERR wrong number of arguments for ‘auth‘ command
node-redis:ErrorReply: ERR wrong number of arguments for ‘auth‘ command
436 0
|
NoSQL Java Redis
记录Redis操作的异常QueryTimeoutException & RedisCommandTimeoutException: Command timed out after 1 min
记录Redis操作的异常QueryTimeoutException & RedisCommandTimeoutException: Command timed out after 1 min
4011 0
|
19天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
164 85
|
3月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
87 6