반응형
우분투에서 Redis를 소스 코드로 컴파일하고 설치하는 방법
Redis는 "Remote Dictionary Server"의 약자로 키-값 구조의 비정형 데이터를 저장하고 관리하기 위한 고성능 오픈 소스 비관계형 데이터베이스 관리 시스템입니다. 2009년에 살바토레 산필리포에 의해 처음 개발되었으며 2015년부터는 Redis Labs에서 지원하고 있습니다.
- Redis의 주요 특징
- 고성능: Redis는 메모리 기반 데이터 저장을 통해 매우 빠른 성능을 제공합니다.
- 다양한 데이터 구조: Redis는 문자열, 해시, 목록, 집합, 정렬된 집합, 비트맵, 하이퍼로그 로그, 지리 공간 인덱스, 그리고 스트림 등 다양한 데이터 구조를 지원합니다.
- 다양한 기능: Redis는 캐시, 메시지 브로커, 스트리밍 엔진, 분산 키-값 저장소 등 다양한 기능을 제공합니다.
- Redis의 활용 분야
- 캐시: Redis는 애플리케이션 성능 향상을 위한 캐시로 활용됩니다.
- 메시지 브로커: 애플리케이션 간 데이터 전달을 위한 메시지 브로커로 사용됩니다.
- 스트리밍 엔진: 실시간 데이터 처리를 위한 스트리밍 엔진으로 활용됩니다.
- 분산 키-값 저장소: 대규모 데이터를 저장하기 위한 분산 키-값 저장소로 사용됩니다.
- Redis의 다양한 언어 지원
- Redis는 C, Python, Java, JavaScript 등 다양한 언어에서 사용 가능한 클라이언트 라이브러리를 지원하여 유연한 활용이 가능합니다.
- 결론
- 매우 인기 있는 오픈 소스 데이터베이스인 Redis는 빠른 성능, 다양한 데이터 구조, 그리고 다양한 활용 분야에서의 기능 등으로 인해 다양한 분야에서 선호되고 있습니다.
테스트 환경
- 운영체제 버전 정보
$ lsb_release -d
Description: Ubuntu 22.04.2 LTS
1. 필요한 패키지 설치
sudo apt-get update
sudo apt-get install -y build-essential
sudo apt-get install -y pkg-config
sudo apt-get install -y gcc tcl
2. Redis 소스 코드 다운로드 및 압축 해제
wget https://github.com/redis/redis/archive/7.2.3.tar.gz
tar xzf 7.2.3.tar.gz
cd redis-7.2.3
3. 소스 코드 컴파일
make
make test
sudo make install
mv redis-7.2.3 /usr/local/redis
mkdir -p /var/lib/redis /var/log/redis
4. Redis 설정
- Redis(redis.conf) 환경 설정
sed -i 's/bind 127.0.0.1 -::1/bind 0.0.0.0/g' redis.conf
sed -i 's/protected-mode yes/protected-mode no/g' redis.conf
sed -i 's/daemonize no/daemonize yes/g' redis.conf
sed -i 's/dir .\//dir \/var\/lib\/redis/g' redis.conf
sed -i 's/logfile ""/logfile "\/var\/log\/redis\/redis.log"/g' redis.conf
sed -i 's/# maxclients 10000/maxclients 10000/g' redis.conf
sed -i 's/appendonly no/appendonly yes/g' redis.conf
728x90
- Open File(/etc/security/limits.conf) 개수 설정
cat <<EOF >> /etc/security/limits.conf
* soft nproc unlimited
* hard nproc unlimited
* soft nofile 65536
* hard nofile 65536
EOF
- TCP backlog 설정(TCP backlog 경고)
echo "net.core.somaxconn = 65536" >> /etc/sysctl.conf
- 오버커밋(memory overcommit)을 활성화 설정(overcommit_memory 경고)
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sudo sysctl -p
- Transparent Huge Pages(THP)를 비활성화 설정(THP 경고)
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
5. Redis 실행(standalone mode)
src/redis-server
더보기
---
./src/redis-server /usr/local/src/redis-7.2.3/redis.conf
---
$ src/redis-server
56031:C 24 Nov 2023 12:41:27.319 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
56031:C 24 Nov 2023 12:41:27.319 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
56031:C 24 Nov 2023 12:41:27.319 * Redis version=7.2.3, bits=64, commit=00000000, modified=0, pid=56031, just started
56031:C 24 Nov 2023 12:41:27.319 # Warning: no config file specified, using the default config. In order to specify a config file use src/redis-server /path/to/redis.conf
56031:M 24 Nov 2023 12:41:27.320 * Increased maximum number of open files to 10032 (it was originally set to 1024).
56031:M 24 Nov 2023 12:41:27.320 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 7.2.3 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 56031
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
56031:M 24 Nov 2023 12:41:27.320 * Server initialized
56031:M 24 Nov 2023 12:41:27.320 * Ready to accept connections tcp
6. Redis 프로세스 확인
ps -ef | grep -v grep | grep redis
$ ps -ef | grep -v grep | grep redis
root 56621 1 0 13:48 ? 00:00:00 ./src/redis-server 0.0.0.0:6379
7. Redis 클라이언트 실행
src/redis-cli -h 127.0.0.1 -p 6379 ping
$ src/redis-cli -h 127.0.0.1 -p 6379 ping
PONG
8. Redis 중지
src/redis-cli shutdown
이제 Redis가 소스 코드로 컴파일되어 설치되었습니다. 유의해야 할 점은 Redis를 컴파일한 디렉토리에서 명령어를 실행하고 Redis를 실행하거나 관리해야 한다는 것입니다. 데몬 모드로 Redis를 실행하면 백그라운드에서 실행됩니다.
참고URL
- Redis Documentation : Install Redis from Source
728x90
반응형
'리눅스' 카테고리의 다른 글
Jenkins 컨테이너에서 Docker를 실행하기 위해 Docker 이미지를 만들기(Jenkins in Docker) (0) | 2023.11.26 |
---|---|
Docker Compose를 사용하여 Jenkins를 설치하고 실행하는 방법 (0) | 2023.11.25 |
Java 프로세스의 메모리 사용량을 확인하는 방법 (0) | 2023.11.20 |
jstat 명령어 (0) | 2023.11.20 |
Ubuntu 22.04에서 Gradle을 설치하는 방법 (0) | 2023.11.20 |