>  기사  >  데이터 베이스  >  Redis 구성 파일 소개

Redis 구성 파일 소개

尚
앞으로
2019-12-13 17:25:212748검색

Redis 구성 파일 소개

1. 시작 노트

Redis 구성 파일 소개

여기서는 말할 것도 없습니다. 나중에 메모리 크기를 사용해야 할 때 단위를 지정할 수 있으며 일반적으로 k, gb, m, 단위는 대소문자를 구분합니다.

2. INCLUDES

Redis 구성 파일 소개

Redis에는 구성 파일이 하나만 있다는 것을 알고 있습니다. 여러 사람이 개발하고 유지 관리하는 경우 이러한 구성 파일이 여러 개 필요할 수 있습니다. include / path/to/local.conf 구성이 들어오고, 원본 redis.conf 구성 파일이 메인 게이트 역할을 합니다.

ps: struts2 개발을 사용했다면 프로젝트 팀에서 여러 사람이 개발할 때 일반적으로 여러 개의 struts2.xml 파일이 있을 것이며 이 파일도 클래스 구성을 통해 소개됩니다.

또한 이 구성을 redis.conf 파일의 시작 부분에 작성하면 가져온 파일의 구성에 집중하려는 경우 후속 구성이 가져온 파일의 구성을 덮어쓰게 된다는 점에 유의해야 합니다. , 그런 다음 redis에 포함 구성을 작성해야 합니다. .conf 파일의 끝입니다.

3, MODULES

Redis 구성 파일 소개

redis3.0의 폭발적인 기능은 새로운 클러스터이며, redis4.0은 3.0을 기반으로 많은 새로운 기능을 추가합니다. 그 중 여기의 사용자 정의 모듈 구성이 그 중 하나입니다. 여기의 로드모듈 구성을 통해 몇 가지 새로운 기능을 추가하기 위한 사용자 정의 모듈이 도입됩니다.

4. NETWORK

Redis 구성 파일 소개

ps: 여기 구성이 더 길어서 일부만 가로채었습니다. 아래도 마찬가지입니다.

①, 바인딩: Redis 서버 네트워크 카드 IP를 바인딩합니다. 기본값은 로컬 루프백 주소인 127.0.0.1입니다. 이 경우 redis 서비스에 대한 접근은 로컬 클라이언트 연결을 통해서만 가능하며 원격 연결을 통해서는 가능하지 않습니다. 바인딩 옵션이 비어 있으면 사용 가능한 모든 네트워크 인터페이스의 연결이 허용됩니다.

②, 포트: Redis가 실행되는 포트를 지정하며 기본값은 6379입니다. Redis는 단일 스레드 모델이므로 단일 시스템에서 여러 Redis 프로세스가 열리면 포트가 수정됩니다.

3, timeout: 클라이언트가 연결될 때의 타임아웃 시간을 초 단위로 설정합니다. 클라이언트가 이 기간 동안 어떠한 지시도 내리지 않으면 연결이 종료됩니다. 기본값은 0이며 종료되지 않음을 의미합니다.

4, tcp-keepalive: 단위는 초입니다. 이는 서버가 항상 차단되는 것을 방지하기 위해 클라이언트가 여전히 건강한 상태인지 확인하기 위해 SO_KEEPALIVE가 주기적으로 사용됨을 의미합니다. 설정된 경우 공식 권장 값은 300s입니다. 0으로 설정하면 정기적인 테스트가 수행되지 않습니다.

5. GENERAL

Redis 구성 파일 소개

세부 구성 세부 정보:

①, daemonize: Redis가 데몬 프로세스로 시작되도록 지정하려면(백그라운드에서 시작) 기본값은 no

②, pidfile: PID 파일 경로를 구성합니다. redis가 데몬 프로세스로 실행될 때 기본적으로 /var/redis/run/redis_6379.pid 파일에 pid를 씁니다. loglevel: 정의 로그 수준입니다. 기본값은 통지이며 다음 4가지 값을 갖습니다.

debug(대량의 로그 정보를 기록하며 개발 및 테스트 단계에 적합)

verbose(추가 로그 정보)

notice(적절한 양의 로그 정보) , 프로덕션 환경에서 사용)

경고(일부 중요하고 핵심적인 정보만 기록됩니다)

4, 로그 파일: 기본적으로 명령줄 터미널 창에 인쇄되는 로그 파일 주소를 구성합니다.

⑤, 데이터베이스: 데이터베이스 수를 설정합니다. 기본 데이터베이스는 DB 0입니다. 각 연결에서 select 명령을 사용하여 다른 데이터베이스를 선택할 수 있습니다. dbid는 0과 데이터베이스 - 1 사이의 값입니다. 기본값은 16입니다. 이는 Redis에 기본적으로 16개의 데이터베이스가 있음을 의미합니다.

6. SNAPSHOTTING

여기의 구성은 주로 지속성 작업에 사용됩니다.

Redis 구성 파일 소개①, 저장: 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

Redis 구성 파일 소개

①、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

Redis 구성 파일 소개

①、rename-command:命令重命名,对于一些危险命令例如:

flushdb(清空数据库)

flushall(清空所有记录)

config(客户端连接后可配置服务器)

keys(客户端连接后可查看所有存在的键)                   

作为服务端redis-server,常常需要禁用以上命令来使得服务器更加安全,禁用的具体做法是是:

rename-command FLUSHALL ""

也可以保留命令但是不能轻易使用,重命名这个命令即可:

rename-command FLUSHALL abcdefg

这样,重启服务器后则需要使用新命令来执行操作,否则服务器会报错unknown command。

9、CLIENTS

Redis 구성 파일 소개

①、maxclients :设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。  描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

10、MEMORY MANAGEMENT

Redis 구성 파일 소개

①、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

1Redis 구성 파일 소개

①,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

1Redis 구성 파일 소개①, lua-time-limit: Lua 스크립트가 실행되는 최대 시간(ms)입니다. 기본값은 5000입니다.

13, REDIS CLUSTER

1Redis 구성 파일 소개①, 클러스터 활성화: 클러스터 스위치, 기본값은 클러스터 모드를 활성화하지 않는 것입니다.

②, 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제