일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- AWS
- jenkins
- JPA
- IntelliJ
- javascript
- 맛집
- db
- Git
- it
- redis
- springboot
- Oracle
- Web Server
- Spring
- devops
- tool
- php
- Spring Boot
- Gradle
- linux
- laravel
- java
- ubuntu
- 요리
- jsp
- Design Patterns
- ReactJS
- MySQL
- elasticsearch
- docker
- Today
- Total
목록redis (12)
아무거나
[Redis 시리즈 2편] Lettuce 를 사용한 Read / Write 분리 코드는 https://github.com/bkjeon1614/java-example-code/tree/develop/bkjeon-mybatis-codebase 참고 부탁드립니다. 원활한 세팅을 위해 기존 1편에서 설치된 Redis 를 제거 후 진행하자. 환경 (Reader DNS 를 통한 Replica Node 들에 분산하는 방법으로 가정) Redis Master 1대 Slave 2대 Docker Compose 로 설치 (with. Docker) $ docker network create app-tier --driver bridge [docker-compose.yml] version: '2' networks: app-tier..
[Redis 시리즈 1편] Spring Boot 에 Redis 라이브러리인 Lettuce 적용 코드는 https://github.com/bkjeon1614/java-example-code/tree/develop/bkjeon-mybatis-codebase 참고 부탁드립니다. Lettuce Lettuce 란 Netty(비동기 이벤트 기반 고성능 네트워크 프레임워크) 기반이며 고성능, 확장가능, 스레드세이프등을 지원한다. Lettuce 를 선택한 이유 주로 java 쪽에서는 Lettuce 말고도 Jedis 도 많이 사용한다고 한다. 그러나 Jedis 에 비해 몇 배 이상의 성능, 빠른 피드백, 심플하게 디자인된 코드, 잘 기재된 공식문서 등의 이유로 Lettuce 를 많이 사용하고 있는 추세라고 한다. 환경 ..
Cache 적용 패턴 및 관리 전략 읽기 캐시 전략 Cache-Aside 캐시는 데이터베이스와 직접 연결되지 않고, 애플리케이션이 주체가 되며 보편적으로 많이 사용되는 캐시 전략, 읽기 요청에 적합 방식 (1) 캐시에 데이터가 존재하는지 확인 (2) 데이터가 존재하면 캐시 데이터 반환 (3) 데이터가 존재하지 않으면 애플리케이션에서 DB 에 데이터 요청 후 캐시에 저장하고 데이터를 반환 Read-Through 애플리케이션이 캐시를 직접 바라본다. 즉, 캐시가 주 데이터스토어로 인식되며 데이터베이스로 동기화하는 몫은 캐시에 위임, 읽기 요청에 적합 최초 호출 시 캐시에 데이터가 없으므로 첫 요청시 캐시가 갱신되게 대응 (Ex: Cache Warm up 스케쥴 작업 등..) 방식 (1) 캐시에 데이터 요청 ..
set Key와 Value를 입력 ex) set key "value" mset 여러개의 key와 value를 한번에 입력한다. ex) set key1 "value1" key2 "value2" setex key와 value, Expries(sec)설정을 입력한다. (입력된 시간이후에 소멸한다.) ex) setex key "value" 3 get key에 해당하는 value를 가져온다 mget 여러개의 key값을 입력하여 value를 동시에 리턴받는다. ex) mget key1 key2 key3 incr integer 데이터에 한해서 숫자를 1씩 증가시킨다. rpush List에 오른쪽으로 데이터를 추가시킨다. ex) rpush Key "value" lrange List의 지정한 범위 내의 값을 리턴한다...
Redis 서버 설정을 위해서 작성하는 redis.conf 파일에 대해서 정리한다. 대상 파일: https://raw.github.com/antirez/redis/2.4.15/redis.conf 요약 기본설정 daemonize (daemon으로 실행 여부 설정) pidfile (daemon 실행시 pid가 저장될 파일 경로) port (접근을 허용할 port 설정) bind (요청을 대기할 interface[랜카드] 설정) unixsocket, unixsocketperm (요청을 대기할 unix 소켓 설정) timeout (client와 connection을 끓을 idle 시간 설정) loglevel (loglevel 설정) logfile (log 파일 경로 설정) syslog-enabled (syste..
[Elasticache(Redis) 도입 사례] 검색엔진으로 들어오는 부분에 대해서 캐시를 도입했어야했다. 데이터는 현재 천만건기준으로 후에 4천만건정도 또는 그 이상일 경우를 대비하여 설계를해야 했으며 해결책은 이러했다. 1. 키를 빨리 찾고, 빨리 값을 리턴해야 한다. 2. 데이터는 메모리에 저장되어야 하고, 이상적으로 EC2 high-memory types(68GB 보다는, 17GB나 34GB) 이내에 들어가야 한다. (역자 주: EC2에서 가격이 34GB는 17GB 의 2배, 68GB는 17GB의 4배 입니다.) 3. 기존 구조에 적합해야 한다. 4. 서버가 죽어도 다시 데이터를 새로 생성하지 않도록, persistent 해야 한다. (여기의 의미는, 다른 DB나 로그에서 데이터를 다시 재생성할 ..
Redis 서버 설정을 위해서 작성하는 redis.conf 파일에 대해서 정리한다. 대상 파일: https://raw.github.com/antirez/redis/2.4.15/redis.conf 요약 기본설정 daemonize (daemon으로 실행 여부 설정) pidfile (daemon 실행시 pid가 저장될 파일 경로) port (접근을 허용할 port 설정) bind (요청을 대기할 interface[랜카드] 설정) unixsocket, unixsocketperm (요청을 대기할 unix 소켓 설정) timeout (client와 connection을 끓을 idle 시간 설정) loglevel (loglevel 설정) logfile (log 파일 경로 설정) syslog-enabled (syste..
set Key와 Value를 입력 ex) set key "value" mset 여러개의 key와 value를 한번에 입력한다. ex) set key1 "value1" key2 "value2" setex key와 value, Expries(sec)설정을 입력한다. (입력된 시간이후에 소멸한다.) ex) setex key "value" 3 get key에 해당하는 value를 가져온다 mget 여러개의 key값을 입력하여 value를 동시에 리턴받는다. ex) mget key1 key2 key3 incr integer 데이터에 한해서 숫자를 1씩 증가시킨다. rpush List에 오른쪽으로 데이터를 추가시킨다. ex) rpush Key "value" lrange List의 지정한 범위 내의 값을 리턴한다...
- SELECT1 // db 선택 - FLUSHDB // 선택한 db의 모든 키 삭제
[멤캐시드(Memcached) 레디스(Redis) 사용] 1. 멤캐시드 : Redis 는 최근에 나왔고 새로운 기능들에 있어 Memcached와 비교된다. Memcached 보다 Redis 를 선택하는것이 항상 더 좋은 선택 이지만 Memcached 가 더 좋은 두가지의 상황이 있습니다. (1) 작고 변하지 않는 데이타 예를들어 HTML 코드의 부분을 캐싱할때 내부 메모리 관리가 Redis 만큼 복잡하지 않아 능률적이기 떄문에 Memcached 는 메타 데이타에 있어 비교적 작은 메모리를 사용합니다. Memcached 에서 지원하는 유일한 데이타 타입인 String은 오로지 읽기 전용이고 더 이상 처리가 필요 없기 때문에 데이터를 저장하기에 좋습니다. (2) Memcached 는 여전히 Redis 에 비..