Springboot 集成Redis

本文介绍了一种基于Spring Boot的Redis缓存工具类实现方式,包括如何利用Jedis进行数据的读取、写入、过期时间设置及删除等操作,并采用序列化工具对数据进行编码解码以增强安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.配置依赖

7798479-bd9338698f9e12a5.png

2.配置数据源


7798479-582dee100dd6c5af.png

3.编写Redis配置类


7798479-c6c307e9f3634fbb.png

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();

    }

}


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值