前言
Spring 专门提供了进行 Redis 操作的抽象 RedisTemplate,底层依然使用 Jedis 或 lettuce。SpringBoot 2 默认使用 lettuce。
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
转载:https://blog.csdn.net/ljk126wy/article/details/104449805
查看评论