springboot 整合redis

spring boot 一切从简,连整合redis都这么简单

第一步,引入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

第二步,自动加载RedisTemplate

@Resource
    private RedisTemplate<String, Object> redisTemplate;

第三步,使用

    @Override
    public Gift getGiftById(long id) {

        try {
            Object obj = redisTemplate.opsForValue().get("gift:" + id);
            if (null != obj) {
                logger.error("这一次从缓存里取。。。。。。");
                return (Gift) obj;
            }

            Gift gift = giftMapper.getGiftById(id);
            logger.error("这一次从数据库里取。。。。。。。");
            redisTemplate.opsForValue().set("gift:" + id, gift);
            return gift;
        }catch (Exception e) {
            logger.error("",e);
        }
        return null;
    }

不过,我刚从头到尾屡了一遍jedis。这怎么又出了个opsFor.....

还是提供一下,我自己的RedisProvider吧。

@Component
public class RedisProvider {

    private static final Logger logger = Logger.getLogger(RedisProvider.class);

    private static JedisPool pool;

    @Value("${spring.redis.host}")
    private String host;
    @Value("${spring.redis.port}")
    private int port;

    public RedisProvider() {

    }

    @PostConstruct
    public void init() {
        try {
            logger.error("init..........host:" + host);
            logger.error("init..........port:" + port);

            this.pool = new JedisPool(host, port);
        } catch (Exception e) {
            logger.error("初始化redis异常", e);
        }
    }


    @PreDestroy
    public void destory() {
        try {
            if (null != pool) {
                pool.destroy();
            }
        } catch (Exception e) {
            logger.error("销毁redis异常", e);
        }
    }

    /**
     * 5种数据类型的操作,String、Hash、List、Set、ZSet
     * @return
     */
    public void setStringData(String key, String value) {
        Jedis jedis = null;

        try {
            jedis = pool.getResource();

            jedis.set(key, value);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            if (null != jedis) {
                try {
                    jedis.close();
                } catch (Exception e) {
                    logger.error("error", e);
                }
            }
        }
    }

    public void setStringBytes(String key, byte[] value) {
        Jedis jedis = null;

        try {
            jedis = pool.getResource();

            jedis.set(key.getBytes(StandardCharsets.UTF_8), value);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            if (null != jedis) {
                try {
                    jedis.close();
                } catch (Exception e) {
                    logger.error("error", e);
                }
            }
        }
    }

    public String getStringData(String key) {
        Jedis jedis = null;

        String getString = "";
        try {
            jedis = pool.getResource();

            getString = jedis.get(key);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            if (null != jedis) {
                try {
                    jedis.close();
                } catch (Exception e) {
                    logger.error("error", e);
                }
            }
        }
        return getString;
    }

    public byte[] getStringBytes(String key) {
        Jedis jedis = null;

        byte[] retBytes = null;
        try {
            jedis = pool.getResource();

            retBytes = jedis.get(key.getBytes(StandardCharsets.UTF_8));
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            if (null != jedis) {
                try {
                    jedis.close();
                } catch (Exception e) {
                    logger.error("error", e);
                }
            }
        }
        return retBytes;
    }

    /**
     * String类型的setEx
     * @param key
     * @param value
     * @param seconds
     */
    public void setStringEx(String key, String value, int seconds) {
        Jedis jedis = null;

        try {
            jedis = pool.getResource();

            jedis.setex(key, seconds, value);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            if (null != jedis) {
                try {
                    jedis.close();
                } catch (Exception e) {
                    logger.error("error", e);
                }
            }
        }
    }

    public void lPush(String key, String...value) {
        Jedis jedis = null;

        try {
            jedis = pool.getResource();

            jedis.lpush(key,value);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if (null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error", e);
            }
        }
    }

    public void rPush(String key, String...value) {
        Jedis jedis = null;

        try {
            jedis = pool.getResource();

            jedis.rpush(key,value);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if (null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error", e);
            }
        }
    }

    /**
     * 用来清空list集合的所有元素
     * @param key
     */
    public void lTrimeAll(String key) {
        Jedis jedis = null;

        try {
            jedis = pool.getResource();

            jedis.del(key);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if (null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error", e);
            }
        }
    }

    public List<String> lRangeAll(String key){
        Jedis jedis = null;

        List<String> lrange = Collections.emptyList();
        try {
            jedis = pool.getResource();
            lrange = jedis.lrange(key, 0, jedis.llen(key));
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if (null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error", e);
            }
        }
        return lrange;
    }

    public List<String> lRange(String key, int start, int end){
        Jedis jedis = null;

        List<String> lrange = Collections.emptyList();
        try {
            jedis = pool.getResource();
            lrange = jedis.lrange(key, 0, end);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if (null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error", e);
            }
        }
        return lrange;
    }

    public void sAdd(String key, String value) {
        Jedis jedis = null;

        try {
            jedis = pool.getResource();
            jedis.sadd(key,value);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if(null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error",e);
            }
        }
    }

    public Set<String> sMembers(String key) {
        Jedis jedis = null;

        Set<String> smembers = Collections.emptySet();
        try {
            jedis = pool.getResource();
            smembers = jedis.smembers(key);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if(null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error",e);
            }
        }
        return smembers;
    }

    /**
     * 移除Set中的某个元素
     * @param key
     * @param value
     */
    public void srem(String key, String value) {
        Jedis jedis = null;

        try {
            jedis = pool.getResource();
            jedis.srem(key, value);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if(null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error",e);
            }
        }
    }

    public void zAdd(String key, double score, String value) {
        Jedis jedis = null;

        try {
            jedis = pool.getResource();
            jedis.zadd(key, score, value);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if(null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error",e);
            }
        }
    }

    public Set<String> zRangeByScore(String key, double min, double max) {
        Jedis jedis = null;

        Set<String> set = Collections.emptySet();
        try {
            jedis = pool.getResource();
            set = jedis.zrangeByScore(key, min, max);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if(null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error",e);
            }
        }
        return set;
    }

    public void zRem(String key, String value){
        Jedis jedis = null;

        try {
            jedis = pool.getResource();
            jedis.zrem(key, value);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if(null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error",e);
            }
        }
    }


    public void zremrangeByScore (String key, double min, double max){
        Jedis jedis = null;

        try {
            jedis = pool.getResource();
            jedis.zremrangeByScore(key, min, max);
        } catch (Exception e) {
            logger.error("error", e);
        } finally {
            try {
                if(null != jedis) {
                    jedis.close();
                }
            } catch (Exception e) {
                logger.error("error",e);
            }
        }
    }

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值