| | |
| | | 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; |
| | |
| | | |
| | | @Override |
| | | public String set(byte[] key, byte[] value) { |
| | | redisTemplate.opsForValue().set(key, value); |
| | | redisTemplate.opsForValue().set(new String(key), value); |
| | | return ""; |
| | | } |
| | | |
| | |
| | | public String set(String key, String value, String nxxx, String expx, int time) { |
| | | // redisTemplate.opsForValue().set(key, value,nxxx,expx,time); |
| | | // return ""; |
| | | return redisTemplate.execute(new RedisCallback() { |
| | | Object ext = 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 redis.clients.jedis.Jedis) { |
| | | return ((redis.clients.jedis.Jedis) nativeConnection).set(key, value, nxxx, expx, time); |
| | | } |
| | | return ""; |
| | | } |
| | | }, true).toString(); |
| | | }, true); |
| | | if (ext == null) { |
| | | return ""; |
| | | } |
| | | return ext.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(new String(key)); |
| | | if (value == null) { |
| | | return null; |
| | | } |
| | | return (byte[]) value; |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public Long del(byte[] key) { |
| | | redisTemplate.delete(key); |
| | | redisTemplate.delete(new String(key)); |
| | | return 1L; |
| | | } |
| | | |
| | |
| | | |
| | | @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 redis.clients.jedis.Jedis) { |
| | | return ((redis.clients.jedis.Jedis) nativeConnection).eval(script, keys, args); |
| | | } |
| | | |
| | | return null; |
| | | }); |
| | | //return redisTemplate.execute(redisScript, keys, args); |
| | | return exeRet; |
| | | } |
| | | } |