1. Lists 란?
- Linked list 형태의 자료 구조 (인덱스 접근은 느리지만, 데이터 추가와 삭제가 빠름)
- Queue와 Stack으로 사용할 수 있음 (Python 의 deque 와 유사)
2. ListOperations<K, V>사용방법
- private final RedisTemplate<String,String> redisTemplate 으로 지정 후
- redisTemplate.opsForList() 으로 호출 가능
- redisTemplate.opsForList().leftPush( [key 값], [Value 값] ) 로 앞쪽에 데이터를 저장 가능
- redisTemplate.opsForList().leftPushAll( [key 값], [Value collection 값] ) 로 앞쪽에 collection을 한번에 저장 가능
- redisTemplate.opsForList().rightPush( [key 값], [Value 값] ) 로 뒤쪽에 데이터를 저장 가능
- redisTemplate.opsForList(). rightPushAll( [key 값], [Value collection 값] ) 로 뒤쪽에 collection을 한번에 저장 가능
- redisTemplate.opsForList().leftPop( [key 값] ) 로 제일 앞 쪽(head)에 데이터를 출력
- redisTemplate.opsForList().rightPop( [key 값] ) 로 제일 뒤 쪽(tail)에 데이터를 출력
- redisTemplate.opsForValue().range( [key 값] , [start idx ] ,[end idx] ) 로 키값의 특정 범위 내 대이터 출력
* start idx = 0, end idx = -1 일 경우 전체 출력
- redisTemplate.opsForValue().size( [key 값] ) 로 리스트 크기 확인 가능
- redisTemplate.opsForValue().remove( [key 값], [데이터의 순번] , [ 삭제할 value] ) 로 리스트안 특정 데이터 삭제 가능
3. ListOperations<K, V> 예시
@Autowired
RedisTemplate<String, String> redisTemplate;
@Test
void redisTest(){
redisTemplate.opsForList().leftPush("test:list1","1");
System.out.println("test:list1 value = ");
System.out.println(redisTemplate.opsForList().range("test:list1",0,-1));
List<String> values = new ArrayList<>();
values.add("2");
values.add("3");
redisTemplate.opsForList().leftPushAll("test:list1", values);
System.out.println("test:list1 value = ");
System.out.println(redisTemplate.opsForList().range("test:list1",0,-1));
redisTemplate.opsForList().rightPush("test:list1", "4");
System.out.println("test:list1 value = ");
System.out.println(redisTemplate.opsForList().range("test:list1",0,-1));
System.out.println("test:list1 size = ");
System.out.println(redisTemplate.opsForList().size("test:list1"));
redisTemplate.opsForList().leftPop("test:list1");
System.out.println("test:list1 value = ");
System.out.println(redisTemplate.opsForList().range("test:list1",0,-1));
redisTemplate.opsForList().rightPop("test:list1");
System.out.println("test:list1 value = ");
System.out.println(redisTemplate.opsForList().range("test:list1",0,-1));
}
'Redis > Spring Data Redis' 카테고리의 다른 글
[Spring Data Redis] Sorted Sets (0) | 2024.05.13 |
---|---|
[Spring Data Redis] Hashes (0) | 2024.05.13 |
[Spring Data Redis] Sets (0) | 2024.05.13 |
[Spring Data Redis] Strings (0) | 2024.05.13 |
[Spring Data Redis] 기본 설정 방법 (0) | 2024.05.13 |