RedisTemplate访问Redis数据结构(二)——List

RedisTemplate使用ListOperations专门操作list列表。首先初始化spring工厂获得redisTemplate和opsForList

    private RedisTemplate<String,Object> redisTemplate;
    private ListOperations<String, Object> opsForList;

    @SuppressWarnings("unchecked")
    @Before
    public void before(){
        @SuppressWarnings("resource")
        ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
        redisTemplate = (RedisTemplate<String,Object>)context.getBean("redisTemplate");
        opsForList = redisTemplate.opsForList();
    }
Long leftPush(K key, V value);
List range(K key, long start, long end);
    @Test
    public void  testLeftPush(){
        redisTemplate.delete("li1");
        //先进后出(左进左出)
        opsForList.leftPush("li1", "a");
        opsForList.leftPush("li1", "b");
        opsForList.leftPush("li1", "c");
        List<Object> range = opsForList.range("li1", 0, -1);
        for (Object object : range) {
            System.out.println(object);//c b a
        }
        opsForList.leftPush("li1", "d");
        opsForList.leftPush("li1", "e");
        opsForList.leftPush("li1", "f");
        List<Object> range1 = opsForList.range("li1", 0, -1);
        for (Object object : range1) {
            System.out.println(object);//f e d c b a
        }
    }
void trim(K key, long start, long end);
    @Test
    public void testTrim(){
        redisTemplate.delete("li2");
        opsForList.leftPush("li2", "a");
        opsForList.leftPush("li2", "b");
        opsForList.leftPush("li2", "c");
        opsForList.trim("li2", 1, -1);
        List<Object> range = opsForList.range("li2", 0, -1);
        for (Object object : range) {
            System.out.println(object);//b a
        }
    }
Long size(K key);
    @Test
    public void testSize(){
        redisTemplate.delete("li3");
        System.out.println(opsForList.size("li3"));//0
        opsForList.leftPush("li3", "a");
        System.out.println(opsForList.size("li3"));//1
    }
Long leftPushAll(K key, V… values);
 @Test
    public void testLeftPushAll(){
        redisTemplate.delete("li4");
        opsForList.leftPushAll("li4", "a","b","c");
        System.out.println(opsForList.size("li4"));//3
        List<Object> param = new ArrayList<Object>();
        param.add("d");
        param.add("e");
        param.add("f");
        opsForList.leftPushAll("li4", param);
        System.out.println(opsForList.size("li4"));//6
        opsForList.leftPushAll("li4", new Object[]{"g","h"});
        System.out.println(opsForList.size("li4"));//8
        List<Object> range = opsForList.range("li4", 0, -1);
        for (Object object : range) {
            System.out.println(object);//h g f e d c b a
        }
        opsForList.leftPush("li4", param);
        System.out.println(opsForList.size("li4"));//9
        opsForList.leftPush("li4", new Object[]{"g","h"});
        System.out.println(opsForList.size("li4"));//10
        List<Object> range1 = opsForList.range("li4", 0, -1);
        for (Object object : range1) {
            System.out.println(object);
            /*
                [Ljava.lang.Object;@6d06654b
                [d, e, f]
                h
                g
                f
                e
                d
                c
                b
                a 
             */
        }
    }
Long leftPushAll(K key, Collection values);
    @Test
    public void testLeftPushAllCollection(){
        redisTemplate.delete("li5");
        List<Object> strs = new ArrayList<Object>();
        strs.add("a");
        strs.add("b");
        strs.add("c");
        opsForList.leftPushAll("li5", strs);
        List<Object> range = opsForList.range("li5", 0, -1);
        for (Object object : range) {
            System.out.println(object);//c b a
        }
    }

猜你喜欢

转载自www.cnblogs.com/alter888/p/9082264.html