Redisson、Jedis、Lettuce優(yōu)缺點對比
(1)Redisson
優(yōu)點:
實現(xiàn)了分布式特性和可擴展的 Java 數(shù)據(jù)結(jié)構(gòu),適合分布式開發(fā);
API線程安全;
基于Netty框架的事件驅(qū)動的通信,可異步調(diào)用。
缺點:
API更抽象,學習使用成本高。
(2)Jedis
優(yōu)點:
提供了比較全面的Redis操作特性的API
API基本與Redis的指令一一對應,使用簡單易理解。
缺點:
同步阻塞IO;
不支持異步;
線程不安全。
(3)Lettuce
優(yōu)點:
線程安全;
基于Netty 框架的事件驅(qū)動的通信,可異步調(diào)用;
適用于分布式緩存。
缺點:
API更抽象,學習使用成本高。
其中Jedis是用的最普遍的(確實非常簡單),特別是很多單體應用或者偽分布式應用等。
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.代碼測試(簡單的存取)
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)于微服務框架 SpringBoot 是如何整合 Redisson 驅(qū)動詳細步驟的全部內(nèi)容,想要了解更多關(guān)于 SpringBoot 整合 Redisson 后的具體應用內(nèi)容或者 SpringBoot 整合其他驅(qū)動的資料,請關(guān)注W3Cschool其它相關(guān)文章!