해결된 질문
작성
·
452
·
수정됨
0
도커 컨테이너 > 레디스 서버 내에서 redis-cli 실행 후, BF.MADD 명령어를 실행하면, 아래와 같이 잘 실행됩니다.
그러나, 외부(JDBC) 커낵션을 통한 접속에서는
이처럼 명령 실행을 전혀 할 수가 없습니다.
이걸 해결해보려 시도해본 것은 아래와 같습니다.
docker-compose.yml 볼륨마운팅 설정/redis-stack.conf
파일 내용의 변경 부분:
bind 0.0.0.0
protected-mode no
docker-compose.yml 내용입니다.
version: "3.8"
services:
redis:
image: redis/redis-stack-server
hostname: redis
container_name: redis-stack-server
command: /entrypoint.sh
ports:
- "6379:6379"
volumes:
- ../redis/conf/7.2.conf:/redis-stack.conf
restart: always
networks:
- redis-network
networks:
redis-network:
driver: bridge
외부접속에서 명령 실행을 막는 기능을 어떻게 해제할 수 있을까요?
답변 1
1
안녕하세요. 저도 JDBC로 Redis BloomFilter를 사용해본 경험이 없어서 정확한 답변을 드리기는 힘들 것 같은데요. 다만 Redis에서 외부 명령 실행을 막는다기 보다는 JDBC에서 BloomFilter에 대한 지원을 하지 않는 것으로 추측됩니다. BloomFilter는 Redis에서 기본적으로 지원하는 데이터 타입이 아니기 때문에 JDBC에서 사용하기 위해서는 별도의 드라이버를 설치하거나 설정을 변경해야 할 것 같습니다.
아니요. Redis의 지원(또는 설정 변경)이 필요한 것이 아니라 반대로 JDBC의 설정 변경이 필요합니다.
Redis에서 기본으로 지원하는 데이터 타입이 아니기 때문에 저희는 Redis에서 공식 지원하는 Redis Stack이라는 별도의 플러그인을 이용해서 BloomFilter를 사용한 것입니다. "기본으로 지원하지 않는다"는 의미는 기본 redis 모듈에 포함되지 않는다는 의미이지 Redis에서 공식적으로 지원하지 않는다는 의미는 아닙니다.
다만 기본 데이터 타입이 아니기 때문에 마찬가지로 JDBC에서도 BloomFilter를 기본적으로 지원하지 않는 것으로 추측됩니다. 따라서 JDBC에 별도의 드라이버 설치를 하거나 클라이언트 라이브러리를 다운받으셔서 JDBC 세팅을 변경하시면 Redis BloomFilter를 사용하실 수 있을 것으로 예상됩니다.
답변 감사드립니다. 답변해주신 말씀에 이어지는 궁금증이 있는데요,
이 부분에 있어서, Redis 측의 지원이 없다면 Java 기반 Spring-boot 등의 웹서버 어플리케이션에서 Redis 를 사용한다면 블룸필터를 사용할 수 없는 것으로 봐야 될까요?