玩转 SpringBoot 2.x 之 RedisTemplate 操作

前言

Spring 专门提供了进行 Redis 操作的抽象 RedisTemplate,底层依然使用 Jedis 或 lettuce。SpringBoot 2 默认使用 lettuce。

Redis 安装

请参考:带你学 Redis:Redis安装(二)

代码案例

引入 spring-boot-starter-data-redis 和 commons-pool2 依赖,具体代码如下:

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

然后在 application.properties中添加如下配置信息:

spring.redis.port=6379
spring.redis.host=192.168.31.150
spring.redis.lettuce.pool.maxActive=5
spring.redis.lettuce.pool.maxIdle=5

你没有看错到这里就可以快速的使用 RedisTemplate 操作 Redis服务了。

  • spring.redis.port:Redis服务器端口。
  • spring.redis.host:Redis服务器主机 ip
  • spring.redis.lettuce.pool.maxActive:最大连接数, 默认8个
  • spring.redis.lettuce.pool.maxIdle:最大空闲连接数, 默认8个

演示

这里通过 set key value 、get key、del key 三个命令进行演示操作。三个命令具体含义如下:

  • set key value :向指定的key中添加 string 的value 返回ok,如果有则覆盖。
  • get key:获取指定key的value值,返回值是string 的 value。
  • del key:删除指定的 key 名称的的key-value 信息,返回删除的个数。
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTemplateTest {
    Logger log = LoggerFactory.getLogger(RedisTemplateTest.class);

    @Autowired
    private RedisTemplate<String,String> redisTemplate;

    @Test
    public void set(){
        redisTemplate.opsForValue().set("a","1",30, TimeUnit.MINUTES);
        log.info("设置 key 为 a 的值是:{}",1);
    }
    @Test
    public void get(){
        String value =  redisTemplate.opsForValue().get("a");
        log.info("key 为 a 的值是:{}",value);
    }
    @Test
    public void del(){
        redisTemplate.delete("a");
        log.info("删除key 为 a 的值是:{}",1);
    }

}

set 测试日志信息:

2020-02-25 16:17:10.470  INFO 22132 --- [           main] cn.lijunkui.RedisTemplateTest            : 设置 key  a 的值是:1
2020-02-25 16:17:11.629  INFO 22132 --- [       Thread-1] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'

get 测试日志信息:

2020-02-25 16:18:46.559  INFO 17364 --- [           main] cn.lijunkui.RedisTemplateTest            : key  a 的值是:1
2020-02-25 16:18:47.713  INFO 17364 --- [       Thread-1] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'

del 测试的日志信息:

2020-02-25 16:19:49.701  INFO 3780 --- [           main] cn.lijunkui.RedisTemplateTest            : 删除key  a 的值是:1
2020-02-25 16:19:50.858  INFO 3780 --- [       Thread-1] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'

小结

相对于SpringBoot 集成Jedis 是不是更简单了有木有,如果对 RedisTemplate 还不熟悉的小伙伴,抓紧操作起来吧!

代码示例

我本地环境如下:

  • SpringBoot Version: 2.1.0.RELEASE
  • Apache Maven Version: 3.6.0
  • Java Version: 1.8.0_144
  • IDEA:IntellJ IDEA

整合过程如出现问题可以在我的GitHub 仓库 springbootexamples 中模块名为 spring-boot-2.x-redis-redistemplate 项目中进行对比查看

GitHub:https://github.com/zhuoqianmingyue/springbootexamples

发布了146 篇原创文章 · 获赞 535 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/ljk126wy/article/details/104449805