Java spring引导模板执行脚本错误:群集环境中不支持EvalSha
在spring引导项目中,尝试使用redisTemplate执行lua脚本。看来绝地武士不支持为redis集群执行lua脚本。。。还有其他选择吗?谢谢 redis配置:Java spring引导模板执行脚本错误:群集环境中不支持EvalSha,java,spring-boot,spring-data-redis,Java,Spring Boot,Spring Data Redis,在spring引导项目中,尝试使用redisTemplate执行lua脚本。看来绝地武士不支持为redis集群执行lua脚本。。。还有其他选择吗?谢谢 redis配置: spring: redis: cluster: nodes: - 192.168.0.111:6390 - 192.168.0.111:6391 - 192.168.0.111:6392 代码: 切换到莴苣驱动程序以在群集环境中使用EVALSHA Spri
spring:
redis:
cluster:
nodes:
- 192.168.0.111:6390
- 192.168.0.111:6391
- 192.168.0.111:6392
代码:
切换到莴苣驱动程序以在群集环境中使用
EVALSHA
Spring Boot 1.5.x的配置可能如下所示:
@Bean
LettuceConnectionFactory redisConnectionFactory(RedisProperties redisProperties) {
Cluster clusterProperties = redisProperties.getCluster();
RedisClusterConfiguration config = new RedisClusterConfiguration(
clusterProperties.getNodes());
if (clusterProperties.getMaxRedirects() != null) {
config.setMaxRedirects(clusterProperties.getMaxRedirects());
}
return new LettuceConnectionFactory(config);
}
谢谢你有使用莴苣的spring boot的例子吗?
org.springframework.dao.InvalidDataAccessApiUsageException: EvalSha is not supported in cluster environment.
at org.springframework.data.redis.connection.jedis.JedisClusterConnection.evalSha(JedisClusterConnection.java:3568)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.data.redis.core.CloseSuppressingInvocationHandler.invoke(CloseSuppressingInvocationHandler.java:57)
at com.sun.proxy.$Proxy237.evalSha(Unknown Source)
at org.springframework.data.redis.core.script.DefaultScriptExecutor.eval(DefaultScriptExecutor.java:81)
at org.springframework.data.redis.core.script.DefaultScriptExecutor$1.doInRedis(DefaultScriptExecutor.java:71)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:207)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:169)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:157)
at org.springframework.data.redis.core.script.DefaultScriptExecutor.execute(DefaultScriptExecutor.java:60)
at org.springframework.data.redis.core.script.DefaultScriptExecutor.execute(DefaultScriptExecutor.java:54)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:300)
@Bean
LettuceConnectionFactory redisConnectionFactory(RedisProperties redisProperties) {
Cluster clusterProperties = redisProperties.getCluster();
RedisClusterConfiguration config = new RedisClusterConfiguration(
clusterProperties.getNodes());
if (clusterProperties.getMaxRedirects() != null) {
config.setMaxRedirects(clusterProperties.getMaxRedirects());
}
return new LettuceConnectionFactory(config);
}