Redis 구성 파일 소개
1. 시작 노트
여기서는 말할 것도 없습니다. 나중에 메모리 크기를 사용해야 할 때 단위를 지정할 수 있으며 일반적으로 k, gb, m, 단위는 대소문자를 구분합니다.
2. INCLUDES
Redis에는 구성 파일이 하나만 있다는 것을 알고 있습니다. 여러 사람이 개발하고 유지 관리하는 경우 이러한 구성 파일이 여러 개 필요할 수 있습니다. include / path/to/local.conf 구성이 들어오고, 원본 redis.conf 구성 파일이 메인 게이트 역할을 합니다.
ps: struts2 개발을 사용했다면 프로젝트 팀에서 여러 사람이 개발할 때 일반적으로 여러 개의 struts2.xml 파일이 있을 것이며 이 파일도 클래스 구성을 통해 소개됩니다.
또한 이 구성을 redis.conf 파일의 시작 부분에 작성하면 가져온 파일의 구성에 집중하려는 경우 후속 구성이 가져온 파일의 구성을 덮어쓰게 된다는 점에 유의해야 합니다. , 그런 다음 redis에 포함 구성을 작성해야 합니다. .conf 파일의 끝입니다.
3, MODULES
redis3.0의 폭발적인 기능은 새로운 클러스터이며, redis4.0은 3.0을 기반으로 많은 새로운 기능을 추가합니다. 그 중 여기의 사용자 정의 모듈 구성이 그 중 하나입니다. 여기의 로드모듈 구성을 통해 몇 가지 새로운 기능을 추가하기 위한 사용자 정의 모듈이 도입됩니다.
4. NETWORK
ps: 여기 구성이 더 길어서 일부만 가로채었습니다. 아래도 마찬가지입니다.
①, 바인딩: Redis 서버 네트워크 카드 IP를 바인딩합니다. 기본값은 로컬 루프백 주소인 127.0.0.1입니다. 이 경우 redis 서비스에 대한 접근은 로컬 클라이언트 연결을 통해서만 가능하며 원격 연결을 통해서는 가능하지 않습니다. 바인딩 옵션이 비어 있으면 사용 가능한 모든 네트워크 인터페이스의 연결이 허용됩니다.
②, 포트: Redis가 실행되는 포트를 지정하며 기본값은 6379입니다. Redis는 단일 스레드 모델이므로 단일 시스템에서 여러 Redis 프로세스가 열리면 포트가 수정됩니다.
3, timeout: 클라이언트가 연결될 때의 타임아웃 시간을 초 단위로 설정합니다. 클라이언트가 이 기간 동안 어떠한 지시도 내리지 않으면 연결이 종료됩니다. 기본값은 0이며 종료되지 않음을 의미합니다.
4, tcp-keepalive: 단위는 초입니다. 이는 서버가 항상 차단되는 것을 방지하기 위해 클라이언트가 여전히 건강한 상태인지 확인하기 위해 SO_KEEPALIVE가 주기적으로 사용됨을 의미합니다. 설정된 경우 공식 권장 값은 300s입니다. 0으로 설정하면 정기적인 테스트가 수행되지 않습니다.
5. GENERAL
세부 구성 세부 정보:
①, daemonize: Redis가 데몬 프로세스로 시작되도록 지정하려면(백그라운드에서 시작) 기본값은 no
②, pidfile: PID 파일 경로를 구성합니다. redis가 데몬 프로세스로 실행될 때 기본적으로 /var/redis/run/redis_6379.pid 파일에 pid를 씁니다. loglevel: 정의 로그 수준입니다. 기본값은 통지이며 다음 4가지 값을 갖습니다.
debug(대량의 로그 정보를 기록하며 개발 및 테스트 단계에 적합)verbose(추가 로그 정보)
notice(적절한 양의 로그 정보) , 프로덕션 환경에서 사용)
경고(일부 중요하고 핵심적인 정보만 기록됩니다)
4, 로그 파일: 기본적으로 명령줄 터미널 창에 인쇄되는 로그 파일 주소를 구성합니다.
⑤, 데이터베이스: 데이터베이스 수를 설정합니다. 기본 데이터베이스는 DB 0입니다. 각 연결에서 select
여기의 구성은 주로 지속성 작업에 사용됩니다.
①, 저장: Redis를 실행하는 지속 조건, 즉 메모리에 있는 데이터를 하드 디스크에 저장할 시점을 구성하는 데 사용됩니다. 기본 구성은 다음과 같습니다.
save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存 save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存 save 60 10000:表示60 秒内如果至少有 10000 个 key 的值变化,则保存
물론 Redis의 캐싱 기능만 사용하고 지속성이 필요하지 않은 경우 모든 저장 줄을 주석 처리하여 저장 기능을 비활성화할 수 있습니다. 비활성화하려면 빈 문자열을 직접 사용할 수 있습니다. save ""
②, stop-writes-on-bgsave-error: 기본값은 yes입니다. RDB가 활성화되고 데이터의 마지막 백그라운드 저장이 실패한 경우 Redis가 데이터 수신을 중지할지 여부입니다. 이렇게 하면 사용자는 데이터가 디스크에 올바르게 유지되지 않았다는 사실을 알게 되며, 그렇지 않으면 누구도 재해가 발생했다는 사실을 알 수 없게 됩니다. Redis가 다시 시작되면 데이터 수신을 다시 시작할 수 있습니다
③、rdbcompression ;默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。
④、rdbchecksum :默认值是yes。在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。
⑤、dbfilename :设置快照的文件名,默认是 dump.rdb
⑥、dir:设置快照文件的存放路径,这个配置项一定是个目录,而不能是文件名。使用上面的 dbfilename 作为保存的文件名。
7、REPLICATION
①、slave-serve-stale-data:默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:
1) 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候
2) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时,slave 都将返回一个 "SYNC with master in progress" 的错误
②、slave-read-only:配置Redis的Slave实例是否接受写操作,即Slave是否为只读Redis。默认值为yes。
③、repl-diskless-sync:主从数据复制是否使用无硬盘复制功能。默认值为no。
④、repl-diskless-sync-delay:当启用无硬盘备份,服务器等待一段时间后才会通过套接字向从站传送RDB文件,这个等待时间是可配置的。 这一点很重要,因为一旦传送开始,就不可能再为一个新到达的从站服务。从站则要排队等待下一次RDB传送。因此服务器等待一段 时间以期更多的从站到达。延迟时间以秒为单位,默认为5秒。要关掉这一功能,只需将它设置为0秒,传送会立即启动。默认值为5。
⑤、repl-disable-tcp-nodelay:同步之后是否禁用从站上的TCP_NODELAY 如果你选择yes,redis会使用较少量的TCP包和带宽向从站发送数据。但这会导致在从站增加一点数据的延时。
Linux内核默认配置情况下最多40毫秒的延时。如果选择no,从站的数据延时不会那么多,但备份需要的带宽相对较多。默认情况下我们将潜在因素优化,但在高负载情况下或者在主从站都跳的情况下,把它切换为yes是个好主意。默认值为no。
8、SECURITY
①、rename-command:命令重命名,对于一些危险命令例如:
flushdb(清空数据库)
flushall(清空所有记录)
config(客户端连接后可配置服务器)
keys(客户端连接后可查看所有存在的键)
作为服务端redis-server,常常需要禁用以上命令来使得服务器更加安全,禁用的具体做法是是:
rename-command FLUSHALL ""
也可以保留命令但是不能轻易使用,重命名这个命令即可:
rename-command FLUSHALL abcdefg
这样,重启服务器后则需要使用新命令来执行操作,否则服务器会报错unknown command。
9、CLIENTS
①、maxclients :设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。 描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
10、MEMORY MANAGEMENT
①、maxmemory:设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息。
②、maxmemory-policy :当内存使用达到最大值时,redis使用的清楚策略。有以下几种可以选择:
1) 휘발성-lru LRU 알고리즘을 사용하여 만료된 시간이 있는 키 제거(LRU: Least Recent Used)
2) allkeys-lru LRU 알고리즘을 사용하여 모든 키 제거
3) 휘발성-임의 제거 설정 임의 키 만료된 키
4) allkeys-random 임의 키 제거
5) 휘발성-ttl 만료 예정인 키 제거(부 TTL)
6) noeviction noeviction은 키를 제거하지 않고 쓰기 오류만 반환합니다. 기본값 옵션
3, maxmemory-samples: LRU 및 최소 TTL 알고리즘은 정확한 알고리즘은 아니지만 비교적 정확한 알고리즘입니다(메모리 절약을 위해). 테스트할 샘플 크기를 마음대로 선택할 수 있습니다. Redis는 기본적으로 테스트할 샘플 수를 3개 선택합니다. maxmemory-samples를 통해 샘플 수를 설정할 수 있습니다.
11. APPEND ONLY MODE
①,appendonly: redis는 기본적으로 많은 애플리케이션에서 충분한 rdb 지속성을 사용합니다. 그러나 Redis가 중간에 다운되면 몇 분 동안 데이터 손실이 발생할 수 있습니다. 지속성은 저장 전략에 따라 수행됩니다. Append Only File은 더 나은 지속성 특성을 제공할 수 있는 또 다른 지속성 방법입니다. Redis는 기록된 각 데이터를 받은 후appendonly.aof 파일에 기록합니다. Redis는 시작될 때마다 먼저 이 파일의 데이터를 메모리로 읽고 RDB 파일을 먼저 무시합니다. 기본값은 아니오입니다.
②, appendfilename: aof 파일 이름, 기본값은 "appendonly.aof"
3, appendfsync: aof 지속성 전략 구성; no는 fsync를 실행하지 않는다는 의미이며 운영 체제는 데이터가 디스크에 동기화되도록 보장합니다. Always는 데이터가 디스크에 동기화되었는지 확인하기 위해 각 쓰기에 대해 fsync가 실행됨을 나타냅니다. Everysec은 fsync가 초당 한 번 실행되어 1초 데이터가 손실될 수 있음을 나타냅니다. appendfsync-on-rewrite: rewrite or write in aof rdb 파일을 처리할 때 많은 양의 IO가 수행됩니다. 이때, Everysec 및 Always aof 모드에 대해 fsync를 실행하면 오랜 시간 동안 차단이 발생하고 no- addfsync-on-rewrite 필드는 기본적으로 no로 설정됩니다.
애플리케이션의 대기 시간 요구 사항이 높은 경우 이 필드를 예로 설정할 수 있습니다. 그렇지 않으면 아니요로 설정해야 합니다. 이는 지속성 기능에 더 안전한 선택입니다. yes로 설정하면 새 쓰기 작업이 다시 쓰기 중에 fsyncd되지 않고 메모리에 임시로 저장되며 다시 쓰기가 완료된 후 쓰기가 됨을 의미합니다. 기본값은 no이며 yes를 권장합니다. Linux의 기본 fsync 정책은 30초입니다. 30초 동안의 데이터가 손실될 수 있습니다. 기본값은 아니오입니다.
⑤, auto-aof-rewrite-percentage: 기본값은 100입니다. aof 자동 재작성 구성에서는 현재 aof 파일 크기가 마지막으로 다시 작성된 aof 파일 크기의 백분율을 초과하면 다시 작성됩니다. 즉, aof 파일이 특정 크기로 커지면 Redis는 bgrewriteaof를 호출하여 로그 파일을 다시 작성할 수 있습니다. 현재 AOF 파일 크기가 마지막 로그 재작성에서 얻은 AOF 파일 크기의 두 배인 경우(100으로 설정) 새 로그 재작성 프로세스가 자동으로 시작됩니다.
⑥, 자동 재작성 최소 크기: 64MB. 합의된 비율에 도달했지만 크기가 여전히 작은 경우 다시 쓰기를 방지하기 위해 다시 쓸 수 있는 최소 AOF 파일 크기를 설정합니다.
7, aof-load-truncated: aof 파일이 마지막에 불완전할 수 있습니다. redis가 시작되면 aof 파일의 데이터가 메모리에 로드됩니다. Redis가 위치한 호스트 운영 체제가 다운된 후에 다시 시작될 수 있습니다. 특히 ext4 파일 시스템이 data=ordered 옵션을 추가하지 않은 경우 이러한 현상이 발생하거나 비정상적인 종료로 인해 tail이 불완전해지지 않습니다. redis를 종료하거나 최대한 많은 데이터를 가져오도록 선택할 수 있습니다.
예를 선택하면 잘린 aof 파일을 가져올 때 로그가 자동으로 클라이언트에 게시된 후 로드됩니다. 그렇지 않은 경우 사용자는 AOF 파일을 복구하기 위해 수동으로 redis-check-aof를 수행해야 합니다. 기본값은 예입니다.
12. LUA SCRIPTING
①, lua-time-limit: Lua 스크립트가 실행되는 최대 시간(ms)입니다. 기본값은 5000입니다.
①, 클러스터 활성화: 클러스터 스위치, 기본값은 클러스터 모드를 활성화하지 않는 것입니다.
②, Cluster-config-file: 클러스터 구성 파일의 이름입니다. 각 노드에는 클러스터 정보를 영구적으로 저장하는 클러스터 관련 구성 파일이 있습니다. 이 파일은 수동 구성이 필요하지 않습니다. 이 구성 파일은 Redis에 의해 생성되고 업데이트됩니다. 각 Redis 클러스터 노드에는 별도의 구성 파일이 필요합니다. 인스턴스가 실행 중인 시스템의 구성 파일 이름과 충돌이 없는지 확인하십시오. 기본 구성은 node-6379.conf입니다.
3, Cluster-node-timeout: 값은 15000으로 구성할 수 있습니다. 노드 상호 연결 시간 초과 임계값, 클러스터 노드 시간 초과 밀리초
4, Cluster-slave-validity-factor: 값을 10으로 구성할 수 있습니다. 장애 조치 중에 모든 슬레이브는 마스터가 되기를 요청하지만 일부 슬레이브는 일정 기간 동안 마스터와의 연결이 끊어져 데이터가 너무 오래되었을 수 있습니다. 이러한 슬레이브는 마스터로 승격되어서는 안 됩니다. 이 파라미터는 슬레이브 노드가 마스터로부터 너무 오랫동안 연결이 끊어졌는지 여부를 확인하는 데 사용됩니다.
판정 방법은 슬레이브 연결 해제 시간과 (node-timeout *slave-validity-factor) + repl-ping-slave-기간을 비교합니다. 노드 타임아웃이 30초이고, 슬레이브 유효성 인자가 10이라면 가정합니다. 기본 repl-ping-slave-기간은 10초입니다. 즉, 310초를 초과하면 슬레이브는 장애 조치를 시도하지 않습니다
⑤, Cluster-migration-barrier: 값을 1로 구성할 수 있습니다. 마스터의 슬레이브 번호가 이 값보다 크면 슬레이브를 다른 격리된 마스터로 마이그레이션할 수 있습니다. 이 매개변수를 2로 설정하면 마스터 노드에 작동 중인 슬레이브 노드가 2개 있는 경우에만 해당 슬레이브 노드 중 하나가 마이그레이션을 시도합니다. .
⑥, Cluster-require-full-coverage: 기본적으로 클러스터 내 모든 슬롯이 노드를 담당하며, 클러스터 상태가 ok인 경우에만 서비스를 제공할 수 있습니다. 모든 슬롯이 할당되지 않은 경우 서비스를 제공하려면 no로 설정합니다. 이 구성을 활성화하는 것은 권장되지 않습니다. 이렇게 하면 작은 파티션의 마스터가 파티셔닝 중에 항상 쓰기 요청을 수락하게 되어 오랫동안 데이터 불일치가 발생하게 됩니다.
더 많은 Redis 지식을 알고 싶다면 redis 데이터베이스 튜토리얼 칼럼을 주목해 주세요.
위 내용은 Redis 구성 파일 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Redis Cluster Mode는 Sharding을 통해 Redis 인스턴스를 여러 서버에 배포하여 확장 성 및 가용성을 향상시킵니다. 시공 단계는 다음과 같습니다. 포트가 다른 홀수 redis 인스턴스를 만듭니다. 3 개의 센티넬 인스턴스를 만들고, Redis 인스턴스 및 장애 조치를 모니터링합니다. Sentinel 구성 파일 구성, Redis 인스턴스 정보 및 장애 조치 설정 모니터링 추가; Redis 인스턴스 구성 파일 구성, 클러스터 모드 활성화 및 클러스터 정보 파일 경로를 지정합니다. 각 redis 인스턴스의 정보를 포함하는 Nodes.conf 파일을 작성합니다. 클러스터를 시작하고 Create 명령을 실행하여 클러스터를 작성하고 복제본 수를 지정하십시오. 클러스터에 로그인하여 클러스터 정보 명령을 실행하여 클러스터 상태를 확인하십시오. 만들다

Redis 데이터를 지우는 방법 : Flushall 명령을 사용하여 모든 키 값을 지우십시오. FlushDB 명령을 사용하여 현재 선택한 데이터베이스의 키 값을 지우십시오. 선택을 사용하여 데이터베이스를 전환 한 다음 FlushDB를 사용하여 여러 데이터베이스를 지우십시오. del 명령을 사용하여 특정 키를 삭제하십시오. Redis-Cli 도구를 사용하여 데이터를 지우십시오.

Redis의 대기열을 읽으려면 대기열 이름을 얻고 LPOP 명령을 사용하여 요소를 읽고 빈 큐를 처리해야합니다. 특정 단계는 다음과 같습니다. 대기열 이름 가져 오기 : "큐 :"와 같은 "대기열 : my-queue"의 접두사로 이름을 지정하십시오. LPOP 명령을 사용하십시오. 빈 대기열 처리 : 대기열이 비어 있으면 LPOP이 NIL을 반환하고 요소를 읽기 전에 대기열이 존재하는지 확인할 수 있습니다.

Redis 지시 사항을 사용하려면 다음 단계가 필요합니다. Redis 클라이언트를 엽니 다. 명령 (동사 키 값)을 입력하십시오. 필요한 매개 변수를 제공합니다 (명령어마다 다름). 명령을 실행하려면 Enter를 누르십시오. Redis는 작업 결과를 나타내는 응답을 반환합니다 (일반적으로 OK 또는 -err).

Redis를 사용하여 잠금 작업을 사용하려면 SetNX 명령을 통해 잠금을 얻은 다음 만료 명령을 사용하여 만료 시간을 설정해야합니다. 특정 단계는 다음과 같습니다. (1) SETNX 명령을 사용하여 키 값 쌍을 설정하십시오. (2) 만료 명령을 사용하여 잠금의 만료 시간을 설정하십시오. (3) DEL 명령을 사용하여 잠금이 더 이상 필요하지 않은 경우 잠금을 삭제하십시오.

Redis 소스 코드를 이해하는 가장 좋은 방법은 단계별로 이동하는 것입니다. Redis의 기본 사항에 익숙해집니다. 특정 모듈을 선택하거나 시작점으로 기능합니다. 모듈 또는 함수의 진입 점으로 시작하여 코드를 한 줄씩 봅니다. 함수 호출 체인을 통해 코드를 봅니다. Redis가 사용하는 기본 데이터 구조에 익숙해 지십시오. Redis가 사용하는 알고리즘을 식별하십시오.

Redis Command Line 도구 (Redis-Cli)를 사용하여 다음 단계를 통해 Redis를 관리하고 작동하십시오. 서버에 연결하고 주소와 포트를 지정하십시오. 명령 이름과 매개 변수를 사용하여 서버에 명령을 보냅니다. 도움말 명령을 사용하여 특정 명령에 대한 도움말 정보를 봅니다. 종금 명령을 사용하여 명령 줄 도구를 종료하십시오.

REDIS 데이터 손실 원인에는 메모리 실패, 정전, 인간 오류 및 하드웨어 고장이 포함됩니다. 솔루션은 다음과 같습니다. 1. RDB 또는 AOF 지속성을 사용하여 디스크에 데이터를 저장합니다. 2. 고 가용성을 위해 여러 서버에 복사하십시오. 3. Redis Sentinel 또는 Redis 클러스터를 사용한 Ha; 4. 데이터를 백업 할 스냅 샷을 만듭니다. 5. 지속성, 복제, 스냅 샷, 모니터링 및 보안 조치와 같은 모범 사례를 구현합니다.
