package com;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.ListPosition;

public class RedisListApp {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		System.out.println(" ======================== RedisListApp START ======================== \n");
		
		try {

			JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
			JedisPool pool = new JedisPool(jedisPoolConfig, "127.0.0.1", 6379);
			Jedis jedis = pool.getResource();
			jedis.auth("redis6379");

			 //jedis.rpush(key,value1,value2..); key에 마지막인덱스에 value를 저장한다. value1이 0번이 되고 value2가 1번
			jedis.rpush("strList", "2","3");
			
			System.out.println("\njedis.lrange(\"strList\", 0, -1) :	" + jedis.lrange("strList", 0, -1)); // 0번 부터 마지막 인덱스까지 조회 
			
			//jedis.lpush(key,value1,value2..); key에 0번 인덱스에 value를 저장한다. 이미 사용되고 있는 인덱스가 뒤로 밀린다. value1이 1번이 되고 value2가 0번
			jedis.lpush("strList","1","0"); 
			
			System.out.println("\njedis.lrange(\"strList\", 0, 2) :	" + jedis.lrange("strList", 0, 2));  // 0번 부터 2번 인덱스 까지 조회
			
			System.out.println("\njedis.rpop(\"strList\") :	"+jedis.rpop("strList"));// 마지막 인덱스에서 value 조회하고 제거
			System.out.println("jedis.lrange(\"strList\", 0, -1) :	" + jedis.lrange("strList", 0, -1)); // 0번 부터 마지막 인덱스까지 조회 
			
			System.out.println("\njedis.lpop(\"strList\") :	"+jedis.lpop("strList"));// 0번 인덱스에서 value 조회하고 제거
			System.out.println("jedis.lrange(\"strList\", 0, -1) :	" + jedis.lrange("strList", 0, -1));
			
			System.out.println("\njedis.lindex(\"strList\", 0) :	"+jedis.lindex("strList", 0)); //해당 인덱스 조회
			System.out.println("jedis.lindex(\"strList\", 1) :	"+jedis.lindex("strList", 1));

			jedis.lset("strList", 0, "1.5");//0번째 인덱스에 value 저장 
			System.out.println("\njedis.lset(\"strList\", 0, \"1.5\")");
			System.out.println("jedis.lindex(\"strList\", 0) :	"+jedis.lindex("strList", 0));
			
			jedis.lpushx("strList", "1");//0번째 인덱스에 1 저장 나머지 인덱스 뒤로밀림
			System.out.println("\njedis.lpushx(\"strList\", \"1\")");
			System.out.println("jedis.lrange(\"strList\", 0, -1) :	" + jedis.lrange("strList", 0, -1));
			
			jedis.rpushx("strList", "2.5");//마지막 인덱스에 2.5 저장
			System.out.println("\njedis.rpushx(\"strList\", \"2.5\")");
			System.out.println("jedis.lrange(\"strList\", 0, -1) :	" + jedis.lrange("strList", 0, -1));
			
			
			jedis.linsert("strList", ListPosition.BEFORE , "2.5", "2.2");// value 2.5 전에 2.2 삽입
			System.out.println("\njedis.linsert(\"strList\", ListPosition.BEFORE , \"2.5\", \"2.2\")");
			System.out.println("jedis.lrange(\"strList\", 0, -1) :	" + jedis.lrange("strList", 0, -1));
			
			jedis.linsert("strList", ListPosition.AFTER , "0.9", "1.3");// value 1 후에 1.3 삽입
			System.out.println("\njedis.linsert(\"strList\", ListPosition.BEFORE , \"1\", \"1.3\")");
			System.out.println("jedis.lrange(\"strList\", 0, -1) :	" + jedis.lrange("strList", 0, -1));
			
			jedis.flushAll();
			
			jedis.close();

			pool.destroy();
			
			System.out.println("\n ======================== RedisListApp END ======================== ");
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
}

 

console

 ======================== RedisListApp START ======================== 


jedis.lrange("strList", 0, -1) :	[2, 3]

jedis.lrange("strList", 0, 2) :	[0, 1, 2]

jedis.rpop("strList") :	3
jedis.lrange("strList", 0, -1) :	[0, 1, 2]

jedis.lpop("strList") :	0
jedis.lrange("strList", 0, -1) :	[1, 2]

jedis.lindex("strList", 0) :	1
jedis.lindex("strList", 1) :	2

jedis.lset("strList", 0, "1.5")
jedis.lindex("strList", 0) :	1.5

jedis.lpushx("strList", "1")
jedis.lrange("strList", 0, -1) :	[1, 1.5, 2]

jedis.rpushx("strList", "2.5")
jedis.lrange("strList", 0, -1) :	[1, 1.5, 2, 2.5]

jedis.linsert("strList", ListPosition.BEFORE , "2.5", "2.2")
jedis.lrange("strList", 0, -1) :	[1, 1.5, 2, 2.2, 2.5]

jedis.linsert("strList", ListPosition.BEFORE , "1", "1.3")
jedis.lrange("strList", 0, -1) :	[1, 1.5, 2, 2.2, 2.5]

 ======================== RedisListApp END ========================