springboot整合redis

一、简介

Redis 的数据库的整合在 java 里面提供的官方工具包:jedis,所以即便你现在使用的是 SpringBoot,那么也继续使用此开发包。

回到顶部

二、redidTemplate操作

在 Spring 支持的 Redis 操作之中提供有一个 RedisTemplate 处理程序类,利用这个类可以非常方便的实现 Redis 的各种基本数 据操作。

1、引入依赖

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

2、配置yml

spring:  
  redis:
    host: 47.52.199.52
    port: 6379
    password: 123456
    timeout: 1000
    database: 0
    jedis:
      pool:
        max-active: 4
        max-idle: 8
        min-idle: 2
        max-wait: 100

3、使用示例

@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
public class DemoApplicationTests {    @Resource
    private RedisTemplate<String, String> redisTemplate;

    @Test
    public void testRedis(){
        redisTemplate.opsForValue().set("xing","12345678");
        System.out.println(redisTemplate.opsForValue().get("xing"));
    }

}

 三、配置多个Redis

  由于在项目的实际开发过程之中 Redis 的使用会非常的频繁, 那么就有可能出现这样一种问题:现在的项目里面要求连接两 个 Redis 数据库。SpringBoot 里面针对于 Redis 的连接配置本质上只提供有一个连接配置项,那么如果你真的需要进行更多的 Redis 的连接配置,那么就需要自己来进行 Redis 的创建管理了。相当于直接使用spring-data-redis。

1、引入依赖

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

2、配置yml

spring:
    redis-two:
    host: 47.52.199.52
    port: 6379
    password: 123456
    timeout: 1000
    database: 0
    pool:
      max-active: 10
      max-idle: 8
      min-idle: 2
      max-wait: 100

3、初始化连接,创建实例

RedisTwoConfig.java

package com.example.demo.config.redisConfig;

import org.springframework.beans.factory.annotation.Value;
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.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import redis.clients.jedis.JedisPoolConfig;


@Configuration
public class RedisTwoConfig {

    @Bean("redisTwo")
    public RedisTemplate<String, Object> getRedisTemplate(
            @Value("${spring.redis-two.host}") String hostName,
            @Value("${spring.redis-two.password}") String password,
            @Value("${spring.redis-two.port}") int port,
            @Value("${spring.redis-two.database}") int database,
            @Value("${spring.redis-two.pool.max-active}") int maxActive,
            @Value("${spring.redis-two.pool.max-idle}") int maxIdle,
            @Value("${spring.redis-two.pool.min-idle}") int minIdle,
            @Value("${spring.redis-two.pool.max-wait}") long maxWait) {

        System.out.println(hostName+port+password);
        RedisConnectionFactory factory = this.getRedisConnectionFactory(
                hostName, password, port, maxActive, maxIdle, minIdle, maxWait,
                database); // 建立Redis的连接
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
        redisTemplate.setConnectionFactory(factory);
        redisTemplate.setKeySerializer(new StringRedisSerializer()); // key的序列化类型
        redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer()); // value的序列化类型
        return redisTemplate;
    }

    public RedisConnectionFactory getRedisConnectionFactory(String hostName,
                                                            String password, int port, int maxActive, int maxIdle, int minIdle,
                                                            long maxWait, int database) { // 是负责建立Factory的连接工厂类
        JedisConnectionFactory jedisFactory = new JedisConnectionFactory();
        jedisFactory.setHostName(hostName);
        jedisFactory.setPort(port);
        jedisFactory.setPassword(password);
        jedisFactory.setDatabase(database);
        JedisPoolConfig poolConfig = new JedisPoolConfig(); // 进行连接池配置
        poolConfig.setMaxTotal(maxActive);
        poolConfig.setMaxIdle(maxIdle);
        poolConfig.setMinIdle(minIdle);
        poolConfig.setMaxWaitMillis(maxWait);
        jedisFactory.setPoolConfig(poolConfig);
        jedisFactory.afterPropertiesSet(); // 初始化连接池配置
        return jedisFactory;
    }
}

4、使用示例

@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
public class RedisTest {
    @Resource
    private RedisTemplate<String, Object> redisTemplate;

    @Resource
    private StringRedisTemplate stringRedisTemplate;

    @Resource(name = "redisTwo")
    private RedisTemplate<String, Object> redisTemplate2;

    @Test
    public void testRedis2(){
        UserPO userPO = new UserPO();
        userPO.setAge(25);
        userPO.setName("小明");
        userPO.setUid(111L);
        redisTemplate2.opsForValue().set("user25",userPO);
        UserPO result = (UserPO) redisTemplate2.opsForValue().get("user25");
        System.out.println(result);
    }
}

 

好的,下面是SpringBoot整合Redis的步骤: 1. 在pom.xml中引入Redis的依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 在application.properties或application.yml中配置Redis连接信息,例如: ``` spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= spring.redis.database=0 ``` 3. 创建RedisConfig类,配置RedisTemplate和StringRedisTemplate: ``` @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } @Bean public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) { StringRedisTemplate stringRedisTemplate = new StringRedisTemplate(); stringRedisTemplate.setConnectionFactory(redisConnectionFactory); return stringRedisTemplate; } } ``` 4. 在需要使用Redis的地方注入RedisTemplate或StringRedisTemplate,并使用相应方法操作Redis,例如: ``` @Autowired private RedisTemplate<String, Object> redisTemplate; public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object get(String key) { return redisTemplate.opsForValue().get(key); } ``` 以上就是SpringBoot整合Redis的基本步骤,希望能够帮到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值