Redis之通过RedisTemplate对象访问Redis

Redis之通过RedisTemplate对象访问Redis

spring框架中

首先导入依赖

        
        
            redis.clients
            jedis
            2.9.1
        
        
        
            org.springframework.data
            spring-data-redis
            2.1.10.RELEASE
        
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.10.2
        

配置application.xml文件




    
    
        
        
        
        
        
        
        
    

    
    
    

    
    
        
        
        
            
        
        
            
            
            
        
        
            
        
        
            
        
    

测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = "classpath:application.xml")
public class AppTest {

    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testStr() {
        //默认使用的是JDK序列化的编码
        redisTemplate.opsForValue().set("username", "hello");
        String result = (String) redisTemplate.opsForValue().get("username");
        System.out.println(result);
        redisTemplate.opsForValue().set("age", 20);
        System.out.println(redisTemplate.opsForValue().increment("age"));
    }

    @Test
    public void testEmp() {
        Emp emp = new Emp(1001, "hello", new Date());
        redisTemplate.opsForValue().set("emp:" + emp.getEmpno(), emp);
        Emp result = (Emp) redisTemplate.opsForValue().get("emp:1001");
        System.out.println(result.getEname() + ":" + result.getHiredate());
    }

    @Test
    public void testAddEmps() {
        List emps = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            Emp emp = new Emp(i, "hello" + i, new Date());
            emps.add(emp);
        }
        redisTemplate.opsForValue().set("emps", emps);
        List list = (List) redisTemplate.opsForValue().get("emps");
        for (Emp emp : list) {
            System.out.println(emp.getEname());
        }
    }

    @Test
    public void testHash() {
        redisTemplate.opsForHash().put("emp", "ename", "张三");
        String ename = (String) redisTemplate.opsForHash().get("emp", "ename");
        System.out.println(ename);
        RedisOperations redisOperations = redisTemplate.opsForHash().getOperations();
        String empName = redisOperations.boundValueOps("ename").get();
        System.out.println(empName);
        Map result = redisTemplate.opsForHash().entries("emp");
        for (String key : result.keySet()) {
            System.out.println(key + ":" + result.get(key));
        }
        Emp emp = new Emp(1001, "张三", new Date());
        Map empMap = new HashMap();
        empMap.put("ename", emp.getEname());
        empMap.put("empno", emp.getEmpno());
        empMap.put("hiredate", emp.getHiredate());
        redisTemplate.opsForHash().putAll("empmap", empMap);
        redisTemplate.opsForHash().entries("empmap");

    }


    @Test
    public void testList() {
        redisTemplate.opsForList().rightPush("mylist", "hello");
        redisTemplate.opsForList().rightPush("mylist", "world");
        redisTemplate.opsForList().rightPush("mylist", "test");
        redisTemplate.opsForList().rightPush("mylist", "woniu");
        List list = redisTemplate.opsForList().range("mylist", 0, -1);
        for (String s : list) {
            System.out.println(s);
        }
        String str = (String) redisTemplate.opsForList().index("mylist", 1);
        System.out.println(str);
        str = (String) redisTemplate.opsForList().rightPop("mylist");
        System.out.println("pop:" + str);
        Long size = redisTemplate.opsForList().size("mylist");
        System.out.println("size:" + size);
    }

    @Test
    public void testSet() {
        redisTemplate.opsForSet().add("myset", "hello");
        redisTemplate.opsForSet().add("myset", "hello");
        redisTemplate.opsForSet().add("myset", "world");
        redisTemplate.opsForSet().add("myset", "test");
        //获取所有元素
        Set set = redisTemplate.opsForSet().members("myset");
        for (String s : set) {
            System.out.println(s);
        }
        System.out.println(redisTemplate.opsForSet().isMember("myset", "hello"));
    }

    @Test
    public void testEmpSet() {
        Emp emp1 = new Emp(1001, "emp1", new Date());
        Emp emp2 = new Emp(1002, "emp2", new Date());
        Emp emp3 = new Emp(1003, "emp3", new Date());
        Emp emp4 = new Emp(1004, "emp3", new Date());
        redisTemplate.opsForSet().add("myset1", emp1);//{}
        redisTemplate.opsForSet().add("myset1", emp2);//{}
        redisTemplate.opsForSet().add("myset1", emp3);//{}
        redisTemplate.opsForSet().add("myset2", emp2);
        redisTemplate.opsForSet().add("myset2", emp3);
        redisTemplate.opsForSet().add("myset2", emp4);
        Set set = redisTemplate.opsForSet().difference("myset1", "myset2");
        for (Emp emp : set) {
            System.out.println("差集:" + emp.getEmpno());
        }
        Set inter = redisTemplate.opsForSet().intersect("myset1", "myset2");
        for (Emp emp : inter) {
            System.out.println("交集:" + emp.getEmpno());
        }
        Set union = redisTemplate.opsForSet().union("myset1", "myset2");
        for (Emp emp : union) {
            System.out.println("并集:" + emp.getEmpno());
        }
    }

    @Test
    public void testZSet() {
        redisTemplate.opsForZSet().add("scores", "zs", 88d);
        redisTemplate.opsForZSet().add("scores", "lisi", 98d);
        redisTemplate.opsForZSet().add("scores", "ww", 68d);
        redisTemplate.opsForZSet().add("scores", "hello", 88d);
        redisTemplate.opsForZSet().range("scores", 0, -1);
        Set set = redisTemplate.opsForZSet().rangeByScoreWithScores("scores", 60d, 90d);
        for (ZSetOperations.TypedTuple typedTuple : set) {
            System.out.println("分数:" + typedTuple.getScore() + ",value:" + typedTuple.getValue());
        }
        redisTemplate.opsForZSet().incrementScore("scores", "zs", 5d);
        Long count = redisTemplate.opsForZSet().count("scores", 60d, 90d);
        System.out.println("count:" + count);
        Long index = redisTemplate.opsForZSet().rank("scores", "hello");
        System.out.println("index:" + index);
    }
}

springboot项目中

导入依赖
使用配置类配置Jedis和RedisTemplate
具体的有时间再写

你可能感兴趣的:(Redis之通过RedisTemplate对象访问Redis)