版权声明:转载请标明出处~~ https://blog.csdn.net/weixin_43231076/article/details/83113980
SpringDataRedis–demo
1、简单K-V操作:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/applicationContext-redis.xml")
public class TestValue {
@Autowired
private RedisTemplate redisTemplate;
//设置string型的key-value
@Test
public void setValue() {
/*
*redisTemplate.boundValueOps表示获取一个操作简单key-value型数据的对象
*/
redisTemplate.boundValueOps("name").set("SpringDataRedis");
}
//获取key的值
@Test
public void getValue() {
String str = (String) redisTemplate.boundValueOps("name").get();
System.out.println(str);
}
//删除key
@Test
public void deleteValue() {
redisTemplate.delete("name");
}
}
2、set类型数据操作:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/applicationContext-redis.xml")
public class TestSet {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void testSetValue(){
redisTemplate.boundSetOps("nameSet").add("张三"); //往 nameSet 这个key 中添加值,但是不能存入重复的值,因为set里面的值不能重复
redisTemplate.boundSetOps("nameSet").add("李四");
redisTemplate.boundSetOps("nameSet").add("王五");
}
@Test
public void testGetValue(){
Set set = redisTemplate.boundSetOps("nameSet").members(); //取出 nameSet这个key的值,得到一个set,set是无序的
System.out.println(set);
}
@Test
public void removeValue(){
redisTemplate.boundSetOps("nameSet").remove("张三"); //从 nameSet中移除一个值
}
@Test
public void deleteValue(){
redisTemplate.delete("nameSet");
}
}
3、list类型的数据操作
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/applicationContext-redis.xml")
public class TestList {
@Autowired
private RedisTemplate redisTemplate;
/**
* 右压栈的方式存入数据
* 特点:后添加的元素,排在list后面
*/
@Test
public void testSetValueRight(){
redisTemplate.boundListOps("nameList").rightPush("1");
redisTemplate.boundListOps("nameList").rightPush("2");
redisTemplate.boundListOps("nameList").rightPush("3");
}
@Test
public void testGetValueRight(){
List list = redisTemplate.boundListOps("nameList").range(0, -1); //查出全部元素
System.out.println(list);
//应该输入 1,2,3
}
/**
* 左压栈的方式存入数据
* 特点:后添加的元素,排在list前面
*/
@Test
public void testSetValueLeft(){
redisTemplate.boundListOps("nameList").leftPush("a");
redisTemplate.boundListOps("nameList").leftPush("b");
redisTemplate.boundListOps("nameList").leftPush("c");
}
@Test
public void testGetValueLeft(){
List list = redisTemplate.boundListOps("nameList").range(0, -1); //查出全部元素
System.out.println(list);
//应该输入 c,b,a,1,2,3
}
/**
* 查询list中指定index的值
*/
@Test
public void searchByIndex(){
String string = (String) redisTemplate.boundListOps("nameList").index(1);
System.out.println(string); //输入 b
}
/**
* 移除list中指定的值
*/
@Test
public void removeValue(){
//2:表示移除的元素的个数(默认从从list中从左往右删除,如果不足2个,就有多少个删多少个); a:表示要移除的值
redisTemplate.boundListOps("nameList").remove(2, "a");
}
}
4、针对HashMap类型的数据操作:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/applicationContext-redis.xml")
public class TestHashMap {
@Autowired
private RedisTemplate redisTemplate;
/**
* 插入hashMap类型的值
*/
@Test
public void testSetValue(){
//nameHashMap 就是这个记录的key,里面有一个map,map中有四个key:a,b,c,d
redisTemplate.boundHashOps("nameHashMap").put("a", "张三");
redisTemplate.boundHashOps("nameHashMap").put("b", "李四");
redisTemplate.boundHashOps("nameHashMap").put("c", "王五");
redisTemplate.boundHashOps("nameHashMap").put("d", "赵六");
}
@Test
public void testGetKeys(){
//获取nameHashMap 中的map里面的所有的key,得到的是一个set类型
Set keys = redisTemplate.boundHashOps("nameHashMap").keys();
System.out.println(keys); // 输出a, b, c, d
}
@Test
public void testGetValues(){
//获取nameHashMap 中的map里面的所有的value,得到的是一个List类型
List values = redisTemplate.boundHashOps("nameHashMap").values();
System.out.println(values); // 输出张三, 李四, 王五, 赵六
}
/**
* 根据key取值
*/
@Test
public void searchValueByKey(){
String value = (String) redisTemplate.boundHashOps("nameHashMap").get("b");
System.out.println(value); //输出 李四
}
/**
* 移除某个key-value
*/
@Test
public void removeByKey(){
redisTemplate.boundHashOps("nameHashMap").delete("b");
//移除后,nameHashMap中就没有 b-李四 这一组key-value
}
@Test
public void delete(){
//删除nameHashMap key的记录
redisTemplate.delete("nameHashMap");
}
}