最簡單的springboot+RedisTemplate+Lettuce的例子

官網:https://lettuce.io/

最簡單的springboot+RedisTemplate+Lettuce的例子

以前java操作redis一直用的Jedis,最近發現Spting比較支持Lettuce,看了下Lettuce確實有他的過人之處。

Lettuce 和 Jedis 的都是連接Redis Server的客戶端程序。Jedis在實現上是直連redis server,多線程環境下非線程安全,除非使用連接池,為每個Jedis實例增加物理連接。Lettuce基於Netty的連接實例(StatefulRedisConnection),可以在多個線程間併發訪問,且線程安全,滿足多線程環境下的併發訪問,同時它是可伸縮的設計,一個連接實例不夠的情況也可以按需增加連接實例。

現在網上的代碼基本都是Jedis的,下面給出一個最簡單的使用springboot+RedisTemplate+Lettuce的例子,更多配置還需自己查看文檔。

引入依賴:

org.springframework.boot

spring-boot-starter-data-redis

配置一下:

我使用的是集群模式,

@Configuration

public class AppConfig {

@Bean

public LettuceConnectionFactory redisConnectionFactory() {

RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration();

redisClusterConfiguration.addClusterNode(new RedisNode("xxxx", 7001));

redisClusterConfiguration.addClusterNode(new RedisNode("xxxx", 7002));

redisClusterConfiguration.addClusterNode(new RedisNode("xxxx", 7003));

redisClusterConfiguration.addClusterNode(new RedisNode("xxxx", 7004));

redisClusterConfiguration.addClusterNode(new RedisNode("xxxx", 7005));

redisClusterConfiguration.addClusterNode(new RedisNode("xxxx", 7006));

redisClusterConfiguration.setPassword(RedisPassword.of("123456"));

return new LettuceConnectionFactory(redisClusterConfiguration);

}

@Bean

public RedisTemplate redisTemplate(LettuceConnectionFactory factory) {

StringRedisTemplate template = new StringRedisTemplate(factory);

return template;

}

}

使用舉例:

@Autowired

RedisTemplate

redisTemplate;

@RequestMapping("/redisTemplate/set/{key}/{value}")

public String redisTemplateSet(@PathVariable(name = "key") String key, @PathVariable(name = "value") String value) {

redisTemplate.opsForValue().set(key, value);

return "done";

}

@RequestMapping("/redisTemplateSet/show/{key}")

public String redisTemplateGet(@PathVariable(name = "key") String key){

String result = redisTemplate.opsForValue().get(key);

return result;

}

是不是很簡單呢


分享到:


相關文章: