티스토리 뷰

반응형

LLM 서비스를 개발하다 보니 토큰 비용 문제로 캐시 서버를 운영해야하는 상황이 생겼다.

사용자의 질의를 캐싱하는 기능이 있는데 Redis는 인메모리 DB 이므로 메모리를 많이 사용한다. 따라서 계속 메모리를 잡아먹기 때문에 주기적으로 지울 필요성이 있다고 생각했다.

 

redis.conf 파일 다운 주소 : https://redis.io/topics/config

conf 파일에 대한 설정은 다음의 블로그에 아주 친절하게 설명되어 있다. https://blog.naver.com/eastee/220081013385

 

docker-compose.yml

version: '3.8'
services:
  redis:
    image: redis:7.2.4
    container_name: redis
    env_file:
      - .env.dev
    ports:
      - ${CONF_REDIS_BINDING_PORT}:${CONF_REDIS_PORT}
    command: redis-server /usr/local/conf/redis.conf
    volumes:
      - ./redis/data:/data
      - ./redis/conf/redis.conf:/usr/local/conf/redis.conf

 

개발, 운영 간의 환경 변수를 나누기 위해 .env.dev 파일을 만들었다. 그리고 redis 구동시 redis.conf를 사용하는 방법은

command 다음에 오는 redis-server /usr/local/conf/redis.conf 명령어로 실행해주면 된다. 

 

 

redis.conf

redis.conf는 정말 많은 옵션이 포함되어 있는데 기본적인 것만 사용하였다.

bind 0.0.0.0
port 6379

tcp-backlog 511
tcp-keepalive 300
loglevel notice
pidfile /tmp/redis_6379.pid

dbfilename dump.rdb
dir /redis/data

daemonize no

maxmemory 2000000000
maxmemory-policy volatile-lru

 

스냅샷을 저장하는 db는 /redis/data에 저장을하고 메모리 2G 제한을 두었다. 키 값의 TTL을 설정하였고 요청이 많아 2G 이상 사용하게 되면 lru 규칙에 따라 키를 삭제 하도록 설정했다.

 

반응형

'DevOps > DB' 카테고리의 다른 글

벡터 DB 비교  (0) 2024.02.21
[mongoDB] 중복된 document 제거  (0) 2023.02.23
스칼라쿼리 원리  (0) 2021.02.06
[MySQL] show index from 테이블 해석  (0) 2021.01.22
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함