| | |
| | | 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 ""; |
| | | return redisTemplate.execute(new RedisCallback() { |
| | | public String doInRedis(RedisConnection connection) { |
| | | Jedis jedis = (Jedis) connection.getNativeConnection(); |
| | | return jedis.set(key, value, nxxx, expx, time); |
| | | redis.clients.jedis.Jedis jedis = (redis.clients.jedis.Jedis) connection.getNativeConnection(); |
| | | 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 String get(String key) { |
| | | return redisTemplate.opsForValue().get(key).toString(); |
| | | Object value = redisTemplate.opsForValue().get(key); |
| | | if (value == null) { |
| | | return null; |
| | | } |
| | | |
| | | return value.toString(); |
| | | } |
| | | |
| | | @Override |
| | | public byte[] get(byte[] key) { |
| | | return (byte[]) redisTemplate.opsForValue().get(key); |
| | | Object value = redisTemplate.opsForValue().get(key); |
| | | if (value == null) { |
| | | return null; |
| | | } |
| | | return (byte[]) value; |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public Object eval(String script, List<String> keys, List<String> args) { |
| | | DefaultRedisScript redisScript = new DefaultRedisScript(script); |
| | | 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; |
| | | } |
| | | } |