redis-demo
Demo project for Spring Boot
<java.version>1.8</java.version>
org.springframework.boot
spring-boot-starter-data-redis
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
org.springframework.boot
spring-boot-maven-plugin
3、配置链接信息
server.port=80
server.servlet.context-path=/
#reids相关配置
#redis服务器地址
spring.redis.host=localhost
#雷迪森服务器端口
spring.redis.port=6379
#redis密码,默认为空
spring.redis.password=
#redis数据库索引(默认为0)
spring.redis.database=0
#连接池对打阻塞等待时间(负表示没有限制)
spring.redis.jedis.pool.max-wait=10000
#连接池最大连接数(负表示没有限制)
spring.redis.jedis.pool.max-active=100
#连接池中的最大空闲链接
spring.redis.jedis.pool.max-idle=20
#连接池中的最小空闲链接
spring.redis.jedis.pool.min-idle=0
#链接超时时间
spring.redis.timeout=3000
1、测试
在RedisDemoApplicationTests测试类中,编写代码测试连接。
测试代码如下:
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.core.RedisTemplate;
@SpringBootTest
class RedisDemoApplicationTests {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Test
void contextLoads() {
//向redis中添加数据
redisTemplate.opsForValue().set(“keys”, “value值”);
//根据键值取出数据
System.out.println(redisTemplate.opsForValue().get(“keys”));
}
}
【释】 RedisTemplate是Spring Data Redis提供给用户的最高级的抽象客户端,用户可直接通过RedisTemplate对redis进行操作。操作方法即redis的指令,关于redis的指令的操作可以移步:Redis数据类型及基本使用。
可以点进去看一下RedisTemplate继承关系和方法,下面是继承关系,方法就比较多了,这里就不贴出来了,感兴趣的小伙伴可以直接去RedisTemplate类中看看。
//RedisAccessor是RedisTemplate定义普通属性的基类,不直接使用
//RedisOperations是指定RedisTemplate实现的Redis connection操作的集合接口
//BeanClassLoaderAware是给其实现类是设置类加载器的接口
RedisTemplate<K, V> extends RedisAccessor implements RedisOperations<K, V>, BeanClassLoaderAware
【注】 上述的测试案例中RedisTemplate中的value值设置的是String类型,但redis有五种数据类型,所以这里最好使用Object类型。
@Resource
private RedisTemplate<String, Object> redisTemplate;
这里注解如果继续使用@AutoWired会报错,需要使用@Resource,这两个注解的区别在前者是根据类型后者是根据名字(报错原因:@AutoWired找不到该类型<String,Object>的Bean因为根本没有。使用@Resource直接注入的是RedisTemplate)
操作不同类型的数据,调用的方法不同
-
操作String字符串类型数据时,使用RedisTemplate类中的opsForValue方法操作。
-
操作List列表类型数据时,使用RedisTemplate类中的opsForList方法操作。
-
操作Set集合类型数据时,使用RedisTemplate类中的opsForSet方法操作。
-
操作Hash哈希类型数据时,使用RedisTemplate类中的opsForHash方法操作。
-
操作Zset有序集合类型数据时,使用RedisTemplate类中的opsForZSet方法操作。
2、查看效果
查看Redis中的数据,可以使用RedisDesktopManager工具查看。
上述操作可以直接在Springboot项目中使用。但也可以对redisTemplate的操作进行一下简单的封装。
1、Redis配置类
Redis配置类RedisConfig类代码如下:
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.