Spring Data Redis
是SpringData家族的一部分,对redis客户端进行了封装,与spring进行了整合。可以非常方便的来实现Redis的配置和操作。
RedisTemplate基本操作
SpringData Redis提供了一个工具类:RedisTemplate。里面封装了对Redis的5种数据结构的各种操作,
包括:
- redisTemplate.opsForValue():操作字符串
- redisTemplate.opsForHash():操作hash
- redisTemplate.opsForList():操作list
- redisTemplate.opsForSet():操作set
- redisTemplate.opsForZSet():操作zset
其他一些通用命令,如expire,可以通过redisTemplate.xxx()来直接调用
5种结构:
- String:等同于java中的,Map<String,String>
- list:等同于java中的,Map<String,List>
- set:等同于java中的,Map<String,Set>
- sort_set:可以排序的set
- hash:等同于java中的,Map<String,Map<String,String>>
添加引用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置
redis:
host: 192.168.56.101
测试1
@RunWith(SpringRunner.class)
@SpringBootTest(classes=LeyouUserApplication.class)
public class RedisTest {
@Autowired
private StringRedisTemplate redisTemplate;
@Test
public void testRedis() {
// 存储数据
this.redisTemplate.opsForValue().set("key11","value11");
// 获取数据
String val = this.redisTemplate.opsForValue().get("key11");
System.out.println("val=" + val);
}
}
测试2
@Test
public void testRedis2() {
// 存储数据,并制定剩余生命时间,5分钟
this.redisTemplate.opsForValue().set("key2","value",50,TimeUnit.SECONDS);
}
测试3
@Test
public void testHash() {
BoundHashOperations<String,Object,Object> hashOps = this.redisTemplate.boundHashOps("user");
// 操作hash数据
hashOps.put("name","jack");
hasOps.put("age","21");
// 获取单个数据
Object name = hashOps.get("name");
System.out.println("name="+name);
// 获取所有数据
Map<Object,Object> map = hashOps.entries();
for(Map.Entry<Object,Object> me : map.entrySet()) {
System.out.println(me.getKey() + ":" + me.getValue());
}
}