<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>`
复制代码
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=5
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器链接端口
spring.redis.port=6379
# Redis服务器链接密码(默认为空)
spring.redis.password=*****
# 链接池最大链接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 链接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 链接池中的最大空闲链接
spring.redis.pool.max-idle=8
# 链接池中的最小空闲链接
spring.redis.pool.min-idle=0
# 链接超时时间(毫秒)
spring.redis.timeout=0
复制代码
@Configuration
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
RedisTemplate redisTemplate=new RedisTemplate();
redisTemplate.setConnectionFactory(factory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
System.out.println("suscessful");
return redisTemplate;
}
}
复制代码
@Autowired
private RedisTemplate redisTemplate;
@Resource(name="redisTemplate")
private HashOperations hashOperations;
@Resource(name="redisTemplate")
private ZSetOperations zSetOperations;
@Test
public void test1(){
redisTemplate.opsForValue().set("my","my");
Assert.assertEquals("my",redisTemplate.opsForValue().get("my"));
}
@Test
public void test2() {
Map<String, String> map = new HashMap<>();
map.put("age", "13");
map.put("name", "selrain");
hashOperations.putAll("test2", map);
Assert.assertEquals("13",hashOperations.get("test2","age"));
hashOperations.delete("test2","age","name");
}
@Test
public void test3(){
zSetOperations.add("selrain","selraion",1);
Assert.assertEquals("selraion",zSetOperations.range("selrain",0,1).iterator().next());
zSetOperations.remove("selrain","selraion");
}
@Test
public void test4(){
redisTemplate.execute((RedisConnection connection)->{
Jedis jedis=(Jedis)connection.getNativeConnection();
String s=jedis.set("test4","selrain","NX","EX",6000);
return s;
});
}
复制代码
opsForValue、opsForHash、opsForZSet方法分别获取对String、hash、Zset数据结构的操做实现,通常感受用这个就行了html
还能够直接注入这些抽象,这样就不用opsForHash,能够直接用,为何不一样的类型能够直接注入?看下这篇文章: www.cnblogs.com/chanedi/p/4…redis
execute方法给咱们暴露了RedisConnection,拿到连接后,咱们能够转换成Jedis的原始连接,从而可使用data redis不支持可是jedis支持的命令:好比测试代码test4spring
想不想了解Redis的配置是如何初始化的?看这篇文章: my.oschina.net/u/3866531/b…数据库
小尾巴走一波,欢迎关注个人公众号,不按期分享编程、投资、生活方面的感悟:)编程