Redis
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