Java 开发数据库与数据缓存

Springboot 集成Redis

2018-08-13  本文已影响23人  小生不cai

1.配置依赖

2.配置数据源

3.编写Redis配置类

4.编写Redis操作工具类

package com.aj.ajbdmap.cache;

import com.aj.ajbdmap.common.util.SerializeUtil;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

/**

* @program: ajbdmap-service

* @description: 缓存工具类

* @author: Mr.Deng

* @create: 2018-08-08 19:36

**/

@Component("redisCache")

public class RedisCacheimplements IJCache {

@Autowired

    private JedisPooljedisPool;

    private JedisPool getJedisPool(){

return jedisPool;

    }

public void set JedisPool(JedisPool jedisPool){

this.jedisPool = jedisPool;

    }

/**

* 从Redis缓存获取数据

    * @param redisKey

    * @return

    */

    @Override

    public Object get(String redisKey){

Jedis jedis =jedisPool.getResource();

        byte[] byteArray = jedis.get(redisKey.getBytes());

        jedis.close();

        if(byteArray !=null){

return SerializeUtil.unSerialize(byteArray);

        }

return null;

    }

/**

* 保存数据到Redis

    * @param redisKey

    */

    @Override

    public String set(String redisKey,Object obj){

byte[] bytes = SerializeUtil.serialize(obj);

        Jedis jedis =jedisPool.getResource();

        String code = jedis.set(redisKey.getBytes(), bytes);

        jedis.close();

        return code;

    }

/**

* 保存数据到Redis

    * @param redisKey

    */

    @Override

    public String setex(String redisKey,int seconds,Object obj){

byte[] bytes = SerializeUtil.serialize(obj);

        Jedis jedis =jedisPool.getResource();

        String code = jedis.setex(redisKey.getBytes(),seconds, bytes);

        jedis.close();

        return code;

    }

@Override

    public Long refreshex(String redisKey,int seconds){

Jedis jedis =jedisPool.getResource();

        Long rlt= jedis.expire(redisKey,seconds);

        jedis.close();

        return  rlt;

    }

@Override

    public void del(String redisKey){

Jedis jedis =jedisPool.getResource();

        jedis.del(redisKey);

        jedis.close();

    }

}

这样就可以通过这个操作类存储数据了,这里要注意的是存储的时候都有解码,加码这是为了避免数据直接暴露出来, 我们还可以看到存和刷新都有缓存时间设置。

上一篇 下一篇

猜你喜欢

热点阅读