SpringBoot 第十五篇 使用Redis

本文介绍了在SpringBoot项目中如何使用Redis,包括依赖引入、RedisConnectionFactory的使用、RedisTemplate简化开发,以及通过RedisCallback和SessionCallback优化资源管理。

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

最近项目中使用redis越来越多,总结一下:

1. redis 所需依赖:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
  <exclusions>
  <!--spring-boot-starter-data-redis 会依赖Lettuce 的
	redis客户端驱动,而在一版的项目中我们会使用Jedis,
	所以代码中使用了exclusion 将其依赖排除-->
       <exclusion>
         <groupId>io.lettuce</groupId>
         <artifactId>lettuce-core</artifactId>
       </exclusion>
   </exclusions>
	<version>1.5.2.RELEASE</version>
</dependency>
<dependency>
 <groupId>redis.clients</groupId>
 <artifactId>jedis</artifactId>
</dependency>

spring 是通过 spring-data-redis 项目对redis开发进行支持的,

spring 提供RedisConnectionFactory 接口,通过它可生成RedisConnection接口对象

而RedisConneciton 接口对象是对Redis底层接口的封装。例如:我们使用Jedis驱动,

那么spring会提供RedisConnection接口实现类JedisConnection 去封装原有的Jedis对象。

示例:创建 RedisConnectionFactory 对象

package com.chenyun.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import redis.clients.jedis.JedisPoolConfig;

@Configuration
public class RedisConnectionFactorys {

    private RedisConnectionFactory connectionFactory = null;

    @Bean(name="RedisConnectionFactory")
    public RedisConnectionFactory initRedisConnectionFactory(){

        if(this.connectionFactory != null) {
            return this.connectionFactory;
        }
        JedisPoolConfig poolConfig = new JedisPoolConfig();

        // 最大空闲数
        poolConfig.setMaxIdle(30);
        // 最大连接数
        poolConfig.setMaxTotal(50);
        //最大等待毫秒数
        poolConfig.setMaxWaitMillis(2000);
        // 创建Jedis链接工厂
        JedisConnectionFactory connectionFactory = new JedisConnectionFactory(poolConfig);
        // 获取单机Redis配置
        RedisStandaloneConfiguration rsCfg = connectionFactory.getStandaloneConfiguration();

        connectionFactory.setHostName("localhost");
        connectionFactory.setPort(6379);
        connectionFactory.setPassword("123456");

        this.connectionFactory = connectionFactory;

        return  connectionFactory;

    }
}

 这里 我们通过一个连接池配置创建了 RedisConnectionFactory,通过它就能创建RedisConnection

接口对象。但在使用一条链接时先要从RedisConnectionFactory工厂获取,然后在使用完成后

还要自己关闭它。spring为了简化开发,提供了RedisTemplate。

RedisTemplate 会自动从 RedisConnectionFactory工厂中获取链接,然后执行Redis相应的命令,

最后还会关闭redis的链接。

(启动redis 服务端参考:https://www.runoob.com/redis/redis-install.html)

   1.2  spring 提供 RedisCallback, SessionCallback  解决 执行多条redis命令,创建多个链接,而导致

          的资源浪费问题。

         SessionCallback 接口比较友好,用的比较多

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值