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 } }