spring-data-redis简介

Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis, JRedis, and RJC)进行了高度封装,RedisTemplate提供了redis各种操作。
Spring-Data-Redis项目(简称SDR)对Redis的Key-Value数据存储操作提供了更高层次的抽象,类似于Spring Framework对JDBC支持一样。
spring-data-redis针对jedis提供了如下功能:

  1. 连接池自动管理,提供了一个高度封装的“RedisTemplate”类
  2. 针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口
  3. ValueOperations:简单K-V操作
  4. SetOperationsset类型数据操作
  5. ZSetOperationszset类型数据操作
  6. HashOperations:针对map类型的数据操作
  7. ListOperations:针对list类型的数据操作

//———————————Hash类型的操作:经常用————————————————-
//(1)存入值
@Test
public void boundHashOpsSet(){
redisTemplate.boundHashOps(“namehash”).put(“country1”,”中国”);
redisTemplate.boundHashOps(“namehash”).put(“country2”,”日本”);
redisTemplate.boundHashOps(“namehash”).put(“country3”,”韩国”);
}
//(2)提取所有的KEY
@Test
public void boundHashOpsKeys(){
Set keys = redisTemplate.boundHashOps(“namehash”).keys();
System.out.println(keys);
}
//(3)提取所有的值
@Test
public void boundHashOpsValues(){
List values = redisTemplate.boundHashOps(“namehash”).values();
System.out.println(values);
}
//(4) 根据KEY提取值
@Test
public void boundHashOpsByKey(){
Object name = redisTemplate.boundHashOps(“namehash”).get(“country1”);
System.out.println(name);
}
//根据KEY移除值
@Test
public void boundHashOpsDelByKey(){
redisTemplate.boundHashOps(“namehash”).delete(“country2”);
}
//——————————————值类型的操作:因为操作数量少,所以不常用————————————————-
@Test
public void setValue(){
redisTemplate.boundValueOps(“name”).set(“王五”);
}
@Test
public void getValue(){
Object name = redisTemplate.boundValueOps(“name”).get();
System.out.println(name);
}
@Test
public void deleteValue(){
redisTemplate.delete(“name”);
}
//———————————set类型的操作:因为操作数量少,所以不常用————————————————-
/
存入值
/
@Test
public void boundSetOpsAdd(){
redisTemplate.boundSetOps(“nameset”).add(“曹操”); //放入值
redisTemplate.boundSetOps(“nameset”).add(“刘备”);
redisTemplate.boundSetOps(“nameset”).add(“孙权”);
}
/

提取值
/
@Test
public void boundSetOpsGet(){
Set names= redisTemplate.boundSetOps(“nameset”).members();//取出值
System.out.println(names);
}
/*
删除集合中的某一个值
*/
@Test
public void boundSetOpsDelete(){
redisTemplate.boundSetOps(“nameset”).remove(“曹操”);
}

/**<br />     * 删除整个集合<br />     */<br />    @Test<br />    public void boundSetOpsDeleteAll(){<br />        redisTemplate.delete("nameset");<br />    }

**//----------------------list类型的操作:因为操作数量少,所以不常用---------------------------------**<br />    /**<br />     * 右压栈:后添加的对象排在后边<br />     * 右压栈用的多,因为快,原理是<br />     */<br />    @Test<br />    public void boundListrightPush(){<br />        redisTemplate.boundListOps("namelist").rightPush("赵子龙");<br />        redisTemplate.boundListOps("namelist").rightPush("张飞");<br />        redisTemplate.boundListOps("namelist").rightPush("关羽");<br />    }<br />    /**<br />     * 显示右压栈集合<br />     */<br />    @Test<br />    public void boundListRange(){<br />        List namelist = redisTemplate.boundListOps("namelist").range(0, 10);<br />        System.out.println(namelist);<br />    }<br />    

/**<br />     * 查询:根据索引查询集合某个元素<br />     */<br />    @Test<br />    public void boundListIndex(){<br />        Object name = redisTemplate.boundListOps("namelist").index(1);<br />        System.out.println(name);<br />    }

/**<br />     * 删除: 根据值移除集合某个元素<br />     */<br />    @Test<br />    public void  bondListRemove(){<br />        redisTemplate.boundListOps("namelist").remove(1,"关羽");<br />    }<br />    /**<br />     * 删除: 删除全部<br />     */<br />    @Test<br />    public void  bondListDelete(){<br />        redisTemplate.delete("namelist");<br />    }

Docker 环境下redis安装

docker run ‐di ‐‐name=tensquare_redis ‐p 6379:6379 redis

spring-data-redis使用

(1)引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

(2)提供redis配置信息

redis:
    host: 192.168.108.140

(3)在需要使用redis的类中注入模板对象

@Autowired
private RedisTemplate redisTemplate;

(4)调用模板对象中的方法

// 将验证码保存到redis中,方便后面验证使用,设置缓存过期时间,根据日常经验,验证码一般有效时长一分钟
redisTemplate.opsForValue().set(“SmsCode_” + mobile, checkCode);