| | |
| | | package com.ks.lucky.manager; |
| | | |
| | | import com.ks.lib.common.util.RedisUtil; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Component; |
| | | import org.yeshi.utils.SerializeUtil; |
| | | import redis.clients.jedis.Jedis; |
| | | import redis.clients.jedis.JedisPool; |
| | | import redis.clients.jedis.params.SetParams; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Set; |
| | | |
| | | @Component |
| | | public class RedisManager { |
| | | @Resource |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | private JedisPool jedisPool; |
| | | |
| | | private RedisUtil redisUtil = null; |
| | | public Jedis getJedis() { |
| | | Jedis jedis = jedisPool.getResource(); |
| | | return jedis; |
| | | } |
| | | |
| | | //注入Redis监听 |
| | | public void setRedisUtil() { |
| | | if (redisUtil == null) { |
| | | redisUtil = new RedisUtil(redisTemplate); |
| | | private void setString(String key, String value, int seconds) { |
| | | Jedis jedis = getJedis(); |
| | | try { |
| | | jedis.setex(key, seconds, value); |
| | | } finally { |
| | | jedis.close(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 缓存字符串 |
| | | * |
| | | * @param key |
| | | * @param value |
| | | */ |
| | | private void setString(String key, String value) { |
| | | Jedis jedis = getJedis(); |
| | | try { |
| | | jedis.set(key, value); |
| | | } finally { |
| | | jedis.close(); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | public void remove(String... keys) { |
| | | Jedis jedis = getJedis(); |
| | | try { |
| | | jedis.del(keys); |
| | | } finally { |
| | | jedis.close(); |
| | | } |
| | | } |
| | | |
| | | public void removePrefix(String... keys) { |
| | | Jedis jedis = getJedis(); |
| | | try { |
| | | for (String key : keys) { |
| | | Set<String> sets = jedis.keys(key + "*"); |
| | | if (sets != null) { |
| | | for (String k : sets) { |
| | | jedis.del(k); |
| | | } |
| | | } |
| | | } |
| | | } finally { |
| | | jedis.close(); |
| | | } |
| | | } |
| | | |
| | | private String getString(String key) { |
| | | Jedis jedis = getJedis(); |
| | | try { |
| | | return jedis.get(key); |
| | | } finally { |
| | | jedis.close(); |
| | | } |
| | | } |
| | | |
| | | |
| | | public void get() { |
| | | redisUtil.get(""); |
| | | public String getCommonString(String key) { |
| | | return getString(key); |
| | | } |
| | | |
| | | public void cacheCommonString(String key, String value, int seconds) { |
| | | setString(key, value, seconds); |
| | | } |
| | | |
| | | public void cacheCommonString(String key, String value) { |
| | | setString(key, value); |
| | | } |
| | | |
| | | /** |
| | | * 从redis缓存中查询,反序列化 |
| | | * |
| | | * @param redisKey |
| | | * @return |
| | | */ |
| | | public Object getDataFromRedis(String redisKey) { |
| | | //查询 |
| | | Jedis jedis = jedisPool.getResource(); |
| | | try { |
| | | byte[] result = jedis.get(redisKey.getBytes()); |
| | | |
| | | //如果查询没有为空 |
| | | if (null == result) { |
| | | return null; |
| | | } |
| | | |
| | | //查询到了,反序列化 |
| | | return SerializeUtil.unSerialize(result); |
| | | } finally { |
| | | jedis.close(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 将数据库中查询到的数据放入redis |
| | | * |
| | | * @param redisKey |
| | | * @param obj |
| | | */ |
| | | public void setDataToRedis(String redisKey, Object obj, Integer seconds) { |
| | | |
| | | //序列化 |
| | | byte[] bytes = SerializeUtil.serialize(obj); |
| | | |
| | | SetParams params = null; |
| | | if (seconds != null) { |
| | | params = new SetParams().nx().ex(seconds); |
| | | } |
| | | //存入redis |
| | | Jedis jedis = jedisPool.getResource(); |
| | | try { |
| | | jedis.set(redisKey.getBytes(), bytes, params); |
| | | } finally { |
| | | jedis.close(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |