CentOS 7에 Redis 서버를 설치하는 방법

WBOY
풀어 주다: 2023-05-31 08:25:21
앞으로
1437명이 탐색했습니다.

Redis는 ANSI C로 작성된 오픈 소스 다중 플랫폼 데이터 저장 소프트웨어입니다. Redis는 Lua, C, Java, Python, Perl, PHP 및 기타 여러 언어를 지원할 수 있습니다.

Building Redis

redis에는 현재 공식 RPM 설치 패키지가 없습니다. 소스 코드에서 컴파일해야 하며, 컴파일하려면 Make와 GCC를 설치해야 합니다.

GCC와 Make를 설치하지 않았다면 yum을 사용하여 설치하세요.

yum install gcc make
로그인 후 복사

공식 웹사이트에서 tar 아카이브를 다운로드하세요.

curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz
로그인 후 복사

압축을 풀어보세요.

tar zxvf redis-3.0.4.tar.gz
로그인 후 복사

압축을 푼 디렉터리를 입력하세요.

cd redis-3.0.4
로그인 후 복사

Make를 사용하여 소스 파일을 컴파일하세요.

make
로그인 후 복사

Installation

소스 파일이 있는 디렉터리를 입력하세요.

cd src
로그인 후 복사

Redis 서버와 클라이언트를 /usr/local/bin에 복사하세요.

cp redis-server redis-cli /usr/local/bin
로그인 후 복사

센티넬을 복사해서 벤치마킹하고 확인하는 것이 가장 좋습니다.

cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin
로그인 후 복사

redis 구성 폴더를 만듭니다.

mkdir /etc/redis
로그인 후 복사

/var/lib/redis

mkdir -p /var/lib/redis/6379
로그인 후 복사
시스템 매개변수 아래에 데이터를 저장할 유효한 디렉터리를 만듭니다.

redis가 제대로 작동하려면 일부 커널 매개변수를 구성해야 합니다.

vm.overcommit_memory를 1로 구성하면 데이터가 잘리는 것을 방지할 수 있습니다. 자세한 내용은 여기를 참조하세요.

sysctl -w vm.overcommit_memory=1
로그인 후 복사

redis.conf의 tcp-backlog 값(기본값 511)을 초과하도록 최대 백로그 연결 수를 수정합니다. sysctl 기반 IP 네트워크 터널링에 대한 자세한 내용은 kernel.org에서 확인할 수 있습니다.

sysctl -w net.core.somaxconn=512
로그인 후 복사

투명 대용량 페이지에 대한 지원을 취소하세요. 이렇게 하면 redis 사용 중에 지연 및 메모리 액세스 문제가 발생할 수 있습니다.

echo never > /sys/kernel/mm/transparent_hugepage/enabled
로그인 후 복사
로그인 후 복사

redis.conf

redis.conf는 redis의 구성 파일입니다. 하지만 이 파일의 이름은 6379.conf이고 이 숫자는 redis가 수신하는 네트워크 포트입니다. 여러 Redis 인스턴스를 실행하려면 다음과 같은 명명 체계를 사용하는 것이 좋습니다.

샘플 redis.conf를 /etc/redis/6379.conf에 복사하세요.

cp redis.conf /etc/redis/6379.conf
로그인 후 복사

이제 이 파일을 편집하고 매개변수를 구성하세요.

vi /etc/redis/6379.conf
로그인 후 복사
daemonize

daemonize를 no로 설정하면 시스템이 포그라운드에서 실행되어야 합니다. 그렇지 않으면 redis가 갑자기 중단됩니다.

daemonize no
로그인 후 복사
pidfile

pidfile을 /var/run/redis_6379.pid로 설정하세요.

pidfile /var/run/redis_6379.pid
로그인 후 복사
port

기본 포트를 사용하지 않으려면 수정할 수 있습니다.

port 6379
로그인 후 복사
loglevel

로그 수준을 설정하세요.

loglevel notice
로그인 후 복사
logfile

로그 파일 경로를 수정하세요.

logfile /var/log/redis_6379.log
로그인 후 복사
dir

디렉토리를 /var/lib/redis/6379

dir /var/lib/redis/6379
로그인 후 복사

Security

로 설정하세요. 보안을 향상시킬 수 있는 몇 가지 작업이 있습니다.

Unix 소켓

클라이언트 프로그램과 서버 프로그램은 일반적으로 동일한 시스템에서 실행되므로 네트워크 소켓을 수신할 필요가 없습니다. 이것이 귀하의 사용 사례와 유사하다면 네트워크 소켓 대신 Unix 소켓을 사용할 수 있습니다. 이렇게 하려면 포트를 0으로 구성한 후 다음 옵션을 구성하여 Unix 소켓을 활성화해야 합니다.

유닉스 소켓의 소켓 파일을 설정합니다.

 unixsocket /tmp/redis.sock
로그인 후 복사

소켓 파일 권한을 제한하세요.

unixsocketperm 700
로그인 후 복사

이제 redis-cli가 액세스하려면 -s 매개변수를 사용하여 소켓 파일을 가리켜야 합니다.

redis-cli -s /tmp/redis.sock
로그인 후 복사
requirepass

원격 액세스가 필요할 수 있습니다. 그렇다면 각 작업 전에 필요하도록 비밀번호를 설정해야 합니다.

requirepass "bTFBx1NYYWRMTUEyNHhsCg"
로그인 후 복사
rename-command

다음 명령의 출력을 상상해 보세요. 예, 그러면 서버 구성이 출력되므로 가능하면 이 액세스를 거부해야 합니다.

CONFIG GET *
로그인 후 복사

"rename-command" 명령을 사용하여 이 명령이나 다른 명령의 사용을 제한하거나 금지할 수 있습니다. 명령 이름과 대체 이름을 제공해야 합니다. 명령을 보다 안전하게 금지하려면 누구도 명령 이름을 추측할 수 없도록 대체 이름을 빈 문자열로 설정해야 합니다.

rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"rename-command FLUSHALL ""rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"
로그인 후 복사

如何在CentOS 7上安装Redis服务器

유닉스 소켓을 통해 접속하려면 비밀번호를 사용하고,

Snapshot

명령을 수정하세요. 기본적으로 redis는 설정된 디렉터리의 dump.rdb 파일에 데이터 세트를 주기적으로 덤프합니다. save 명령을 사용하여 덤프 빈도를 구성할 수 있습니다. 첫 번째 매개변수는 시간 프레임(초)이고 두 번째 매개변수는 데이터 파일에 적용되는 수정 횟수입니다.

15분마다 키가 한 번 이상 수정되었습니다.

save 900 1
로그인 후 복사

5분마다 키가 10번 이상 수정되었습니다.

save 300 10
로그인 후 복사

1분마다 키가 최소 10,000번 수정되었습니다.

save 60 10000
로그인 후 복사

/var/lib/redis/6379/dump.rdb 파일에는 마지막 저장 이후의 메모리 내 데이터 세트 덤프가 포함되어 있습니다. 먼저 임시 파일을 생성한 후 이전 덤프 파일을 교체하기 때문에 데이터 손상 문제는 없으며 파일을 복사하기만 하면 됩니다.

부팅 시 시작

systemd를 사용하여 시스템 시작 목록에 redis를 추가할 수 있습니다.

예제 init_script 파일을 /etc/init.d에 복사하고, 스크립트 이름이 나타내는 포트 번호에 주의하세요.

cp utils/redis_init_script /etc/init.d/redis_6379
로그인 후 복사

이제 systemd를 사용하고 싶으므로 /etc/systems/system 아래에 redis_6379.service라는 유닛 파일을 만듭니다.

vi /etc/systemd/system/redis_6379.service
로그인 후 복사

아래 내용을 입력하세요. 자세한 내용은 systemd.service를 참조하세요.

[Unit]Description=Redis on port 6379[Service]Type=forkingExecStart=/etc/init.d/redis_6379 startExecStop=/etc/init.d/redis_6379 stop[Install]WantedBy=multi-user.target
로그인 후 복사

现在添加我之前在 /etc/sysctl.conf 里面修改过的内存过量使用和 backlog 最大值的选项。

vm.overcommit_memory = 1net.core.somaxconn=512
로그인 후 복사

对于透明巨页内存支持,并没有直接 sysctl 命令可以控制,所以需要将下面的命令放到 /etc/rc.local 的结尾。

echo never > /sys/kernel/mm/transparent_hugepage/enabled
로그인 후 복사
로그인 후 복사

这样就可以启动了,通过设置这些选项你就可以部署 redis 服务到很多简单的场景,然而在 redis.conf 还有很多为复杂环境准备的 redis 选项。在一些情况下,你可以使用 replication 和 Sentinel 来提高可用性,或者将数据分散在多个服务器上,创建服务器集群。

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

위 내용은 CentOS 7에 Redis 서버를 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!