Redis

https://redis.io/

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker.

Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스(BSD 라이선스), 인메모리 데이터 구조 저장소입니다. Redis는 문자열, 해시, 목록, 집합, 범위 쿼리가 있는 정렬된 집합, 비트맵, 하이퍼로그 로그, 지리 공간 인덱스 및 스트림과 같은 데이터 구조를 제공합니다. Redis에는 복제, Lua 스크립팅, LRU 축출, 트랜잭션 및 다양한 수준의 디스크 지속성이 내장되어 있으며 Redis Sentinel 및 Redis 클러스터를 통한 자동 파티셔닝을 통해 고가용성을 제공합니다.

 

설치 및 설정 : 아래 문서 참고. 보안 관련한 부분 조심해야 함.

https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-20-04

기초적인 설치 및 설정 부분만 정리함. Ubuntu 20.0.4 기준

# redis install sudo apt install redis-server # service check sudo systemctl status redis # redis test redis-cli ping

기본은 localhost 에서만 접속하도록 되어 있는데 간단한 테스팅을 위해서 원격에서 접속할 수 있도록 /etc/redis/redis.conf 에서 설정을 바꿈. bind 부분과 protected-mode 부분을 변경해야 한다.

# diff redis.conf.orig redis.conf 69c69 < bind 127.0.0.1 ::1 --- > #bind 127.0.0.1 ::1 88c88,89 < protected-mode yes --- > #protected-mode yes > protected-mode no # sudo systemctl restart redis # netstat -lnp | grep redis tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 62030/redis-server tcp6 0 0 :::6379 :::* LISTEN 62030/redis-server

redis 테스트

redis-cli 의 경우 기본은 localhost, 6379 port 를 사용함. -h 옵션으로 호스트네임이나 IP 를 지정하고 -p 옵션을 이용해서 포트를 변경할 수 있음

$ redis-cli ping PONG $ redis-cli SET HELLO WORLD OK $ redis-cli get HELLO "WORLD"

 

Redis 가 인터넷에 노출이 되면 보안 문제가 생기므로 이런 경우에는 보안을 강화해서 사용을 해야 한다.

최소한의 보안을 위해서 인증을 추가한다. openssl로 비밀번호 생성하고 redis server의 requirepass 에 설정을 추가하면 redis 접속시 비밀번호를 이용해서 인증을 거쳐야 한다.

 

Redis 보안 : https://redis.io/topics/security

redis-cli : https://redis.io/topics/rediscli