Before SpringBoot2.X, the officially recommended Jedis connection Redis was used directly
In 2 After . The operation is unsafe. If you want to avoid being unsafe, use the Jedis pool connection pool; BIO
lettuce: Netty is used as the bottom layer. The instance can be shared between multiple threads, and there is no thread incompatibility. In case of safety, the number of threads can be reduced; NIO
#Search for redis and find AutoConfiguration
##Press ctrl and click to enter the class
When configuring the configuration file, if you need to configure the connection pool, use lettuce , do not configure Redis directly, it will not take effect if configured.
Check the RedisConnectionFactory during injection
There are two subclasses, namely JedisConnectionFactory and LettuceConnectionFactory
#Because the JedisConnectionFactory class Many of the dependent classes do not exist, so you cannot use it directly. Dependencies are all existing
so when configuring, use lettuce’s
Do not directly configure jedis’s
SpringBoot integration Redis (configuration)
spring: redis: host: localhost port: 6379
在项目创建的时候选择,如果没有选择就添加
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
常用的操作可以直接点就可以了
关于事物的
redisTemplate.unwatch(); redisTemplate.watch("key"); redisTemplate.multi(); redisTemplate.discard(); redisTemplate.exec();
关于数据库的操作需要获取链接后使用连接对象操作
RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();connection.flushAll();connection.flushDb();connection.close();
package co.flower.redis02springboot;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.data.redis.connection.RedisConnection;import org.springframework.data.redis.core.RedisTemplate; @SpringBootTestclass Redis02SpringbootApplicationTests {/** * 我居然直接就指定了泛型 RedisTemplate<String,Object>结果就直接报错了,删除泛型后成功 */@Autowiredprivate RedisTemplate redisTemplate; @Testvoid contextLoads() {// 英文测试redisTemplate.opsForValue().set("name","xiaojiejie"); System.out.println(redisTemplate.opsForValue().get("name"));// 中文测试redisTemplate.opsForValue().set("name","小姐姐"); System.out.println(redisTemplate.opsForValue().get("name")); } } 执行结果,SpringBoot的启动加载和结束销毁没有粘贴/***SpringBootStart****/xiaojiejie 小姐姐/***SpringBootStop*****/
The above is the detailed content of How SpringBoot integrates Redis operation API. For more information, please follow other related articles on the PHP Chinese website!