App下載

微服務(wù)框架SpringBoot是如何整合Redisson 詳細(xì)步驟解析

猿友 2021-07-26 10:05:35 瀏覽數(shù) (4031)
反饋

Redisson、Jedis、Lettuce優(yōu)缺點(diǎn)對(duì)比

(1)Redisson

優(yōu)點(diǎn):
實(shí)現(xiàn)了分布式特性和可擴(kuò)展的 Java 數(shù)據(jù)結(jié)構(gòu),適合分布式開發(fā);
API線程安全;
基于Netty框架的事件驅(qū)動(dòng)的通信,可異步調(diào)用。

缺點(diǎn):
API更抽象,學(xué)習(xí)使用成本高。

(2)Jedis

優(yōu)點(diǎn):
提供了比較全面的Redis操作特性的API
API基本與Redis的指令一一對(duì)應(yīng),使用簡(jiǎn)單易理解。

缺點(diǎn):
同步阻塞IO;
不支持異步;
線程不安全。

(3)Lettuce

優(yōu)點(diǎn):
線程安全;
基于Netty 框架的事件驅(qū)動(dòng)的通信,可異步調(diào)用;
適用于分布式緩存。

缺點(diǎn):
API更抽象,學(xué)習(xí)使用成本高。

其中Jedis是用的最普遍的(確實(shí)非常簡(jiǎn)單),特別是很多單體應(yīng)用或者偽分布式應(yīng)用等。

SpringBoot整合Redisson

1.添加Maven依賴

<!-- redisson-springboot -->
   <dependency>
       <groupId>org.redisson</groupId>
       <artifactId>redisson-spring-boot-starter</artifactId>
       <version>3.11.4</version>
   </dependency>

2.配置文件

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    database: 0
    timeout: 5000

3.添加配置類

import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class RedissonConfig {

    @Autowired
    private RedisProperties redisProperties;

    @Bean
    public RedissonClient redissonClient() {
        Config config = new Config();
        String redisUrl = String.format("redis://%s:%s", redisProperties.getHost() + "", redisProperties.getPort() + "");
        config.useSingleServer().setAddress(redisUrl).setPassword(redisProperties.getPassword());
        config.useSingleServer().setDatabase(3);
        return Redisson.create(config);
    }

}

4.代碼測(cè)試(簡(jiǎn)單的存取)

import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/redisson")
public class RedissonController {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @GetMapping("/save")
    public String save(){
        stringRedisTemplate.opsForValue().set("key","redisson");
        return "save ok";
    }

    @GetMapping("/get")
    public String get(){
        return stringRedisTemplate.opsForValue().get("key");
    }

}

以上就是關(guān)于微服務(wù)框架 SpringBoot 是如何整合 Redisson 驅(qū)動(dòng)詳細(xì)步驟的全部?jī)?nèi)容,想要了解更多關(guān)于 SpringBoot 整合 Redisson 后的具體應(yīng)用內(nèi)容或者 SpringBoot 整合其他驅(qū)動(dòng)的資料,請(qǐng)關(guān)注W3Cschool其它相關(guān)文章!


0 人點(diǎn)贊