Redis 客户端之Redisson 配置使用(基于Spring Boot 2.x)

本文详细介绍如何在SpringBoot项目中整合Redisson,包括配置、依赖引入及测试验证过程。

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

开发环境:使用Intellij IDEA + Maven + Spring Boot 2.x + JDK 8

1.在项目的pom.xml文件下,引入Redis和Redisson在Spring Boot 下的相关Jar包依赖。

    <properties>
        <redisson.version>3.8.2</redisson.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>${redisson.version}</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson-spring-boot-starter</artifactId>
            <version>${redisson.version}</version>
        </dependency>
    </dependencies>

2.在项目的resources目录下,添加redisson的配置文件(这里使用yaml格式的配置文件redisson-config.yml,文件名可自己定, 文件的示例配置如下)。

#Redisson配置
singleServerConfig:
  address: "redis://127.0.0.1:6379"
  password: null
  clientName: null
  database: 7 #选择使用哪个数据库0~15
  idleConnectionTimeout: 10000
  pingTimeout: 1000
  connectTimeout: 10000
  timeout: 3000
  retryAttempts: 3
  retryInterval: 1500
  reconnectionTimeout: 3000
  failedAttempts: 3
  subscriptionsPerConnection: 5
  subscriptionConnectionMinimumIdleSize: 1
  subscriptionConnectionPoolSize: 50
  connectionMinimumIdleSize: 32
  connectionPoolSize: 64
  dnsMonitoringInterval: 5000
  #dnsMonitoring: false

threads: 0
nettyThreads: 0
codec:
  class: "org.redisson.codec.JsonJacksonCodec"
transportMode: "NIO"

具体想加些什么配置,可以查看Redisson提供的Config类里支持的参数,不支持添加里面没有的参数配置。除了yaml类型格式的配置,也支持json格式的配置文件,具体不在这里展开,详情可以参考Redisson配置方法

3.添加Redisson的配置参数读取类RedissonConfig

package com.dbfor.redis.config;

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.io.IOException;

@Configuration
public class RedissonConfig {

    @Bean
    public RedissonClient redisson() throws IOException {
        // 本例子使用的是yaml格式的配置文件,读取使用Config.fromYAML,如果是Json文件,则使用Config.fromJSON
        Config config = Config.fromYAML(RedissonConfig.class.getClassLoader().getResource("redisson-config.yml"));
        return Redisson.create(config);
    }
}

4.构建Spring Boot的启动类RedisApplication

package com.dbfor.redis;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class RedisApplication {

    public static void main(String[] args) {
        SpringApplication.run(RedisApplication.class);
    }
}

5.编写测试类RedissonTest

package com.dbfor.redis;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.stereotype.Component;
import org.springframework.test.context.junit4.SpringRunner;

@SpringBootTest
@RunWith(SpringRunner.class)
@Component
public class RedissonTest {

    @Autowired
    private RedissonClient redissonClient;

    @Test
    public void set() {
        // 设置字符串
        RBucket<String> keyObj = redissonClient.getBucket("k1");
        keyObj.set("v1236");
    }
}

6.在Redis上查看运行结果

在这里插入图片描述
从上图可以看到,Redisson配置操作数据库成功!

其他Redis客户端:
Redis 客户端之Lettuce配置使用(基于Spring Boot 2.x)

### 集成 `spring-boot-starter-data-redis` 和 `redisson-spring-boot-starter` 为了在Spring Boot项目中同时使用 `spring-boot-starter-data-Redis` 和 `redisson-spring-boot-starter`,可以按照以下方法操作: #### Gradle 构建脚本配置 首先,在Gradle构建文件中引入必要的依赖项。以下是完整的Gradle配置示例[^1]: ```groovy buildscript { ext { springBootVersion = '1.5.6.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'spring-boot' repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-data-redis') compile('org.redisson:redisson-spring-boot-starter:3.20.0') // Redisson Starter 版本号需根据实际需求调整 } ``` 上述代码片段展示了如何通过Gradle来管理依赖关系并加载所需的库。 #### Maven 构建工具支持 如果使用Maven作为构建工具,则可以在pom.xml文件中添加如下内容[^3]: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.20.0</version> <!-- 请确认版本兼容 --> </dependency> ``` 完成以上步骤之后即可实现两者的集成工作流程设置完毕后的效果展示如下所示: #### 应用程序属性配置 编辑application.properties或者application.yml文件以定义连接参数以及其它选项。例如: 对于properties格式: ```properties spring.redis.host=localhost spring.redis.port=6379 ``` YAML格式则为: ```yaml spring: redis: host: localhost port: 6379 ``` 这些字段用于指定目标Redis服务器的位置及其端口号等基本信息. #### 使用RedisTemplate与Redission API 当两者都已成功导入到同一个工程里以后, 开发者既能够利用Spring Data Redis 提供的功能比如`RedisTemplate`, 同样也可以享受来自 Redssion 的高级特性如分布式锁服务等等. 下面给出一段简单的Java代码用来演示怎样创建一个基于Redis的计数器实例并且对其进行增减操作的同时还实现了线程安全机制防止并发冲突发生的情况. ```java @Autowired private RedissonClient redisson; public void incrementCounter(String key){ RAtomicLong counter = redisson.getAtomicLong(key); counter.incrementAndGet(); } public long getCounterValue(String key){ RAtomicLong counter = redisson.getAtomicLong(key); return counter.get(); } ``` 此部分逻辑主要依靠于由Redisson所提供的原子型变量类RAtomicLong来进行数值上的修改动作从而达到预期目的即保证每次调用incrementCounter函数都会使得对应key所关联起来的那个整数值加一而不会因为多客户端访问而导致数据紊乱现象产生.[^2] ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值