一、操作String类型数据

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisStrTest {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testSetString(){
        //模板绑定存储的数据类型为String并存入数据: key是bookName value是Java基础
        redisTemplate.boundValueOps("bookName").set("Java基础");
    }

    @Test
    public void testGetString(){
        //模板绑定存储的数据类型为String并取数据:使用key bookName
        String testStr = (String) redisTemplate.boundValueOps("bookName").get();
        System.out.println(testStr);
    }

    @Test
    public void testDelString(){
        //直接用模板根据key删除数据,删除后无数据查询返回null
        redisTemplate.delete("bookName");
    }

    //使用相同的key重新设置值便是更新
}

 

二、操作List类型数据

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisListTest {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testSetList(){
        //模板绑定存储的数据类型为List并存入数据:key是myList,List的数据类型
        redisTemplate.boundListOps("myList").leftPush("java");
        redisTemplate.boundListOps("myList").leftPush("c#");
        redisTemplate.boundListOps("myList").leftPush("python");
    }

    @Test
    public void testGetList(){
        //模板绑定存储的数据类型为List并取数据:key是myList,rang中0是开始,-1是全部
        List myList = redisTemplate.boundListOps("myList").range(0, -1);
        myList.stream().forEach(System.out::println);
        //取list中的一个数据 :先进先出(相当于弹出-删除了)
        //String myList = (String) redisTemplate.boundListOps("myList").rightPop();
        //System.out.println(myList); //java
    }

    @Test
    public void testDelList(){
        //直接用模板根据key删除数据(删除整个集合)
        redisTemplate.delete("myList");
        //指定删除list的数据 :删除一个java
        //redisTemplate.boundListOps("myList").remove(1,"java");
    }

    //使用相同的key重新设置值便是更新
}

 

三、操作Set类型数据

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisSetTest {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testSetValue(){
        //模板绑定存储的数据类型为Set并存入数据: key是mySet
        redisTemplate.boundSetOps("mySet").add("Java");
        redisTemplate.boundSetOps("mySet").add("c#");
        redisTemplate.boundSetOps("mySet").add("python");
        redisTemplate.boundSetOps("mySet").add("html");
    }

    @Test
    public void testGetValue(){
        //模板绑定存储的数据类型为Set并取数据:使用key为 mySet
        Set mySet = redisTemplate.boundSetOps("mySet").members();
        mySet.stream().forEach(System.out::println);
    }

    @Test
    public void testDelValue(){
        //直接用模板根据key删除数据,删除整个Set集合
        redisTemplate.delete("mySet");
        //redisTemplate.boundSetOps("mySet").remove("html");
    }

    //使用相同的key重新设置值便是更新
}

 

四、操作ZSet类型数据

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisZSetTest {

    @Autowired
    private RedisTemplate redisTemplate;

    //ZSet集合有序,数据有分值
    @Test
    public void testSetValue(){
        //模板绑定存储的数据类型为Set并存入数据: key是myZSet
       redisTemplate.boundZSetOps("myZSet").add("Java",15);
       redisTemplate.boundZSetOps("myZSet").add("c#",55);
       redisTemplate.boundZSetOps("myZSet").add("python",25);
       redisTemplate.boundZSetOps("myZSet").add("html",45);
    }

    @Test
    public void testGetValue(){
        //1.模板绑定存储的数据类型为ZSet并取数据:使用key为 myZSet(取一定分值范围的)
        //Set myZSet = redisTemplate.boundZSetOps("myZSet").rangeByScore(20, 50);
        //myZSet.stream().forEach(System.out::println);
        //2.取全部的
        //Set myZSet = redisTemplate.boundZSetOps("myZSet").range(0, -1);
        //myZSet.stream().forEach(System.out::println);
        //3.取数据,带分值
        Set<DefaultTypedTuple> myZSet = redisTemplate.boundZSetOps("myZSet").rangeWithScores(0, -1);
        for (DefaultTypedTuple defaultTypedTuple : myZSet) {
            System.out.println(defaultTypedTuple.getValue());//数据
            System.out.println(defaultTypedTuple.getScore());//分值
        }
    }

    @Test
    public void testDelValue(){
        //1.直接用模板根据key删除数据,删除整个ZSet集合
        //redisTemplate.delete("myZSet");
        //2.删除部分数据
        redisTemplate.boundZSetOps("myZSet").removeRangeByScore(15,25);
    }

    //使用相同的key重新设置值便是更新
}

 

五、操作Hash类型数据

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisHashTest {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testSetHash(){
        //模板绑定存储的数据类型为Hash并存入数据: key是myHash value是{后端:Java}等键值对
        redisTemplate.boundHashOps("myHash").put("后端","Java");
        redisTemplate.boundHashOps("myHash").put("前端","html");
        redisTemplate.boundHashOps("myHash").put("数据库","mysql");
    }

    @Test
    public void testGetHash(){
        //模板绑定存储的数据类型为Hash并取数据:使用key为 myHash,获取键的集合
        //Set myHash = redisTemplate.boundHashOps("myHash").keys();
        //myHash.stream().forEach(System.out::println);
        //获取value的集合(值可重复,所以是list)
        //List myHash = redisTemplate.boundHashOps("myHash").values();
        //myHash.stream().forEach(System.out::println);
        //使用myHash这个key获取到Hash并用键获取值
        String s = (String) redisTemplate.boundHashOps("myHash").get("后端");
        System.out.println(s);
    }

    @Test
    public void testDelHash(){
        //直接用模板根据key删除数据,删除整个Hash集合
        //redisTemplate.delete("myHash");
        redisTemplate.boundHashOps("myHash").delete("后端");
    }

    //使用相同的key重新设置值便是更新
}

原文链接:Redis和SpringDataRedis