| | |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.data.redis.core.script.DefaultRedisScript; |
| | | import org.springframework.stereotype.Component; |
| | | import redis.clients.jedis.JedisCluster; |
| | | import redis.clients.jedis.JedisPool; |
| | | |
| | | import java.util.List; |
| | |
| | | return redisTemplate.execute(new RedisCallback() { |
| | | public String doInRedis(RedisConnection connection) { |
| | | redis.clients.jedis.Jedis jedis = (redis.clients.jedis.Jedis) connection.getNativeConnection(); |
| | | return jedis.set(key, value, nxxx, expx, time); |
| | | Object nativeConnection = connection.getNativeConnection(); |
| | | // 集群 |
| | | if (nativeConnection instanceof JedisCluster) { |
| | | return ((JedisCluster) nativeConnection).set(key, value, nxxx, expx, time); |
| | | } |
| | | |
| | | // 单机 |
| | | if (nativeConnection instanceof Jedis) { |
| | | return ((Jedis) nativeConnection).set(key, value, nxxx, expx, time); |
| | | } |
| | | return ""; |
| | | } |
| | | }, true).toString(); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public Object eval(String script, List<String> keys, List<String> args) { |
| | | DefaultRedisScript<Long> redisScript = new DefaultRedisScript(script,Long.class); |
| | | return redisTemplate.execute(redisScript, keys, args); |
| | | Object exeRet = redisTemplate.execute((RedisCallback<Object>) connection -> { |
| | | Object nativeConnection = connection.getNativeConnection(); |
| | | // 集群 |
| | | if (nativeConnection instanceof JedisCluster) { |
| | | return ((JedisCluster) nativeConnection).eval(script, keys, args); |
| | | } |
| | | |
| | | // 单机 |
| | | if (nativeConnection instanceof Jedis) { |
| | | return ((Jedis) nativeConnection).eval(script, keys, args); |
| | | } |
| | | |
| | | return null; |
| | | }); |
| | | //return redisTemplate.execute(redisScript, keys, args); |
| | | return exeRet; |
| | | } |
| | | } |