Redis 구성 파일 redis.conf에 대한 매우 상세한 분석

coldplay.xixi
풀어 주다: 2021-02-22 09:46:25
앞으로
4979명이 탐색했습니다.

Redis 구성 파일 redis.conf에 대한 매우 상세한 분석

권장(무료): redis 튜토리얼

Article Directory

  • 1. Redis 메모리 제거 전략
  • 2.1 데이터 시간 초과 설정
    • 2.2 LRU 알고리즘을 사용하여 사용되지 않는 데이터를 동적으로 삭제
    3. Redis 구성 사용자 정의

Linux에서 개발할 때 유의할 사항

: 소프트웨어는 기본적으로 /opt 아래에 설치됩니다. 공장 기본값 구성된 구성 파일을 직접 수정하지 마십시오. 올바른 접근 방식은 계속하기 전에 백업 복사본을 만드는 것입니다. 备份一份后再操作

Redis的配置文件位于Redis安装目录下,文件名为reids.conf,下面介绍常用的三十个配置,文章附带英译版redis.conf文件。

一、常用的三十条配置


前十条配置

  • daemonize no
    Redis默认不是以守护进程的方式运行,可以修改为yes启用守护进程。

  • pidfile /var/run/redis/pid
    当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定路径。

  • port 6379
    指定Redis的监听端口。

  • bind 127.0.0.1
    Redis绑定的主机地址。

  • timeout 300
    设置当客户端闲置多长时间后关闭连接,如果为0表示关闭该功能。

  • loglevel verbose
    指定日志记录级别,Redis共支持四个级别:debug、verbose(默认)、notice、warning。

  • logfile stdout
    日志记录方式,默认为标准输出,如果配置Redis为守护进程,而这里的日志记录方式为标准输出,则日志会发送给/dev/null

  • databases 16
    设置数据库的数量,默认数量为0,可以使用select <dbid>命令在连接上指定数据库id。

  • save <seconds> <changes>
    指定多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合。Redis配置文件中提供了3个条件:
    save 900 1; save 300 10 ;save 60 10000

  • rdbcompression yes
    指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF(压缩算法)压缩,如果为了节省cpu时间,可以关闭该选项,但是会导致数据库文件变的巨大。


中间十条配置

  • dbfilename dump.rdb
    指定本地数据库文件名,默认值为dump.rdb

  • dir ./
    指定本地数据库存放目录

  • slaveof <masterip><masterport>
    社会当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,会自动从master进行数据同步

  • masterauth <master-password>
    当master服务设置了密码保护时,slav服务连接master的密码。

  • requirepass foobared
    设置Redis的连接密码,如果配置了连接密码,客户端 在连接Redis时需要通过AUTH<password>命令提供密码,默认是关闭的。

  • maxclients 128
    设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数。如果设置maxclients 0,表示不做限制,当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息。

  • maxmemory <bytes>
    指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,value存放在swap区。

  • appendonly noRedis의 구성 파일은 Redis 설치 디렉터리에 있으며 파일 이름은 reids.conf입니다. 일반적으로 사용되는 30가지 구성이 아래에 Redis의 영어 번역과 함께 제공됩니다. .conf 파일.

    1. 일반적으로 사용되는 30가지 구성🎜🎜🎜🎜🎜상위 10가지 구성🎜🎜🎜🎜🎜🎜daemonize no🎜🎜 Redis는 기본적으로 데몬으로 실행되지 않으며 yes Enable로 수정될 수 있습니다. 악마. 🎜🎜🎜🎜🎜pidfile /var/run/redis/pid🎜🎜 Redis가 데몬으로 실행될 때 Redis는 기본적으로 pid를 /var/run/redis.pid에 기록합니다. /code> 파일의 경우 pidfile을 통해 경로를 지정할 수 있습니다. 🎜🎜🎜🎜🎜port <code>6379🎜🎜 Redis의 수신 대기 포트를 지정합니다. 🎜🎜🎜🎜🎜bind 127.0.0.1🎜🎜 Redis에 바인딩된 호스트 주소입니다. 🎜🎜🎜🎜🎜timeout 300🎜🎜 연결을 종료하기 전에 클라이언트가 유휴 상태인 기간을 설정합니다. 0이면 이 기능을 끄는 것입니다. 🎜🎜🎜🎜🎜loglevel verbose🎜🎜 Redis는 디버그, 상세(기본값), 알림, 경고의 네 가지 수준을 지원합니다. 🎜🎜🎜🎜🎜logfile stdout🎜🎜 로깅 모드, 기본값은 표준 출력입니다. Redis가 데몬으로 구성되고 여기서 로깅 모드가 표준 출력인 경우 로그는 로 전송됩니다. /dev/null🎜🎜🎜🎜🎜databases 16🎜🎜 데이터베이스 수를 설정합니다. 기본 숫자는 0입니다. select <dbid>를 사용할 수 있습니다. code> 명령에 연결 시 데이터베이스 ID를 지정합니다. 🎜🎜🎜🎜🎜save <seconds> <changes>🎜🎜 데이터를 데이터 파일에 동기화하는 기간과 업데이트 작업 횟수를 지정하세요. Redis 구성 파일에는 세 가지 조건이 제공됩니다. 🎜 save 900 1; save 300 10; save 60 10000🎜🎜🎜🎜🎜rdbcompression yes🎜🎜 데이터를 로컬에 저장할 때 압축할지 여부를 지정합니다. 기본값은 yes입니다. Redis는 LZF(압축 알고리즘) 압축을 사용합니다. CPU 시간을 절약하려면 이 옵션을 해제할 수 있지만 이렇게 하면 데이터베이스 파일이 커집니다. 🎜🎜🎜🎜🎜🎜중간 10개의 구성🎜🎜🎜🎜🎜🎜dbfilename dump.rdb🎜🎜은 로컬 데이터베이스 파일 이름을 지정하며, 기본값은 dump.rdb🎜🎜🎜🎜🎜dir입니다. ./🎜🎜 로컬 데이터베이스 저장 디렉터리를 지정하세요🎜🎜🎜🎜🎜slaveof <masterip><masterport>🎜🎜 소셜 이 머신이 슬레이브를 제공할 때 IP를 설정하세요. 마스터 서비스 및 포트의 주소, Redis가 시작되면 데이터가 master에서 자동으로 동기화됩니다🎜🎜🎜🎜🎜masterauth <master-password>🎜🎜 마스터 서비스가 비밀번호로 보호되면 slav 서비스는 마스터 비밀번호에 연결됩니다. 🎜🎜🎜🎜🎜requirepass foobared🎜🎜 Redis에 대한 연결 비밀번호를 설정합니다. 연결 비밀번호가 구성된 경우 클라이언트는 AUTH<password>를 통해 비밀번호를 제공해야 합니다. Redis에 연결할 때 명령을 실행하면 기본값은 닫혀 있습니다. 🎜🎜🎜🎜🎜maxclients 128🎜🎜 동시에 최대 클라이언트 연결 수를 설정합니다. 기본값은 Redis가 동시에 열 수 있는 최대 수입니다. Redis 프로세스가 열 수 있는 파일 설명자입니다. maxclients가 0으로 설정되면 제한이 없음을 의미합니다. 클라이언트 연결 수가 제한에 도달하면 Redis는 새 연결을 닫고 최대 클라이언트 수에 도달했음 오류 메시지를 클라이언트에 반환합니다. 🎜🎜🎜🎜🎜maxmemory <bytes>🎜🎜 Redis가 시작될 때 Redis의 최대 메모리 제한을 지정합니다. 최대 메모리에 도달한 후 Redis는 먼저 지우기를 시도합니다. 만료된 메모리 또는 만료 예정인 키 이 메서드가 처리되면 여전히 최대 메모리 설정에 도달하고 쓰기 작업은 불가능하지만 읽기 작업은 계속 수행할 수 있습니다. Redis의 새로운 VM 메커니즘은 키를 메모리에 저장하고 값을 스왑 영역에 저장합니다. 🎜🎜🎜🎜🎜appendonly no🎜🎜 Redis는 기본적으로 데이터를 디스크에 기록할지 여부를 지정합니다. 이 기능이 켜져 있지 않으면 정전으로 인해 데이터가 손실될 수 있습니다. 일정 기간. 🎜
  • appendfilename appendonly.aofappendonly.aof
    指定更新日志文件名,默认为appendonly.aof。

  • appendsync everysec
    指定更新日志条件,共有三个可选项:
    ①no:表示等操作系统进行数据缓存同步到磁盘(快)、
    ②always:表示每次更新操作系统后手动调用fsync()将数据写到磁盘(慢、安全)、
    ③everysec:表示美妙同步一次(效率折中,为默认值)

最后十个

  • vm-enable no
    指定是否启用虚拟内存机制,默认值为no,VM机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中。
  • vm-swap-file /tmp/redis.swap
    虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享。
  • vm-max-memory 0
    将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据 就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0
  • vm-page-size 32
    Redis swap文件分成了很多的page,一个对象可以保存在多个page上面,但一个page上不能被多个对象共享,vm-page-size是要根据存储的数据大小来设定的,如果存储很多小对象,page大小最好设置为32或者64bytes;如果存储很大大对象,则可以使用更大的page,如果不确定,就使用默认值。
  • vm-pages 134217728
    设置swap文件中的page数量,由于页表(一种表示页面空闲或使用的bitmap)是放在内存中的,在磁盘上每8个pages将消耗1byte的内存。
  • vm-max-threads 4
    设置访问swap文件的线程数,不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的,可能会造成比较长时间的延迟。默认值为4。
  • glueoutputbuf yes
    设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启。
  • hash-max-zipmap-entries 64/hash-max-zipmap-value 512
    指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法。
  • activerehashing yes
    指定是否激活重置哈希,默认为开启。
  • include /path/to/local.conf
    指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件。

二、Redis的内存淘汰策略

Redis作为优秀的缓存中间件,时常会存储大量的数据,即使采用了集群部署来动态扩容,也应该即时的清理内存,维护系统性能。

2.1 为数据设置超时时间

  • expire key time(以秒为单位)            这是最常用的方式
  • setex(String Key, int seconds, String value)  字符串独有的方式

除了字符串自己独有设置过期时间的方法外,其他方法都需要依赖expire方法来设置时间。
如果没有设置时间,那缓存就是永不过期。
如果设置了过期时间,之后又想让缓存永不过期,使用persist key
업데이트 로그 파일 이름을 지정하세요. 기본값은appendonly.aof입니다.

appendsync everysec


업데이트 로그 조건을 지정합니다. 세 가지 옵션이 있습니다.
①no: 운영 체제가 데이터 캐시를 디스크에 동기화할 때까지 기다리는 것을 나타냅니다(빠름). ),
②always: 각 운영 체제 업데이트 후 디스크에 데이터를 쓰기 위해 fsync()를 수동으로 호출하는 것을 의미합니다(느림, 안전).
③everysec: 한 번 멋진 동기화를 의미합니다(효율성 저하, 기본값)

  1. The last ten

    • vm-enable no

    • 가상 메모리 메커니즘을 활성화할지 여부를 지정합니다. 기본값은 no입니다. , Redis는 액세스 권한이 적은 페이지, 즉 콜드 데이터를 디스크로 교체하고, 액세스 권한이 더 많은 페이지는 자동으로 디스크에서 메모리로 교체합니다.

      vm-swap-file /tmp/redis.swap


      가상 메모리 파일 경로, 기본값은 /tmp/redis.swap이며 여러 Redis 인스턴스에서 공유할 수 없습니다. .
    • vm-max-memory 0
      vm-max-memory보다 큰 모든 데이터는 가상 메모리에 저장합니다. vm-max-memory 설정이 아무리 작더라도 모든 인덱스는 데이터는 메모리(Redis의 인덱스 데이터가 키)에 저장된다. 즉, vm-max-memory가 0으로 설정되면 실제로 모든 값이 디스크에 존재하게 된다. 기본값은 0

    • vm-page-size 32

    • Redis 스왑 파일은 여러 페이지에 나누어 저장할 수 있지만 한 페이지에 저장할 수는 없습니다. 여러 객체를 공유하는 경우 저장된 데이터의 크기에 따라 vm-page-size를 설정해야 합니다. 작은 객체가 많이 저장되는 경우 페이지 크기는 32바이트 또는 64바이트로 설정하는 것이 가장 좋습니다. 더 큰 페이지 크기를 사용할 수 있습니다. 확실하지 않은 경우 기본값을 사용하세요.

      vm-pages 134217728


      스왑 파일의 페이지 수를 설정합니다. 페이지 테이블(페이지가 사용 가능하거나 사용 중임을 나타내는 비트맵)이 메모리에 배치되므로, 이는 디스크에 있습니다. 8페이지마다 1바이트의 메모리가 사용됩니다.
    • vm-max-threads 4
      스왑 파일에 액세스하는 스레드 수를 설정합니다. 머신의 코어 수를 초과하지 마십시오. 0으로 설정하면 모든 작업이 수행됩니다. 스왑 파일은 직렬이므로 지연 시간이 길어질 수 있습니다. 기본값은 4입니다.

    • glueoutputbuf yes

    • 더 작은 패킷을 하나의 패킷으로 결합하여 클라이언트에 응답할 때 보낼지 여부를 설정합니다. 기본값은 켜짐입니다.

      hash-max-zipmap-entries 64

      /
    • hash-max-zipmap-value 512

    • 특정 숫자 또는 최대값을 초과하는 경우 지정 요소가 특정 임계값을 초과하면 특수 해시 알고리즘이 사용됩니다.

      activerehashing yes


      리해싱 활성화 여부를 지정하며 기본값은 켜져 있습니다. 🎜🎜🎜include /path/to/local.conf🎜
      다른 구성 파일을 포함하도록 지정합니다. 동일한 호스트에 있는 여러 Redis 인스턴스 간에 동일한 구성 파일을 동시에 사용할 수 있습니다. 각 인스턴스에는 고유한 특정 구성 파일이 있습니다. 🎜🎜🎜2. Redis의 메모리 제거 전략🎜🎜🎜Redis는 뛰어난 캐시 미들웨어로서 많은 양의 데이터를 저장하는 경우가 많습니다. 클러스터 배포를 사용하여 용량을 동적으로 확장하더라도 즉시 메모리를 지워야 합니다. 시스템 성능을 유지합니다. 🎜🎜🎜2.1 데이터에 대한 시간 초과 설정🎜🎜
        🎜키 만료 시간(초) 가장 일반적으로 사용되는 방법입니다🎜🎜setex(String Key, int second, String value )  문자열의 고유한 방법🎜
      🎜만료 시간을 설정하는 문자열 고유의 방법을 제외하고 다른 방법은 만료 시간을 설정하는 방법에 의존해야 합니다.
      시간을 설정하지 않으면 캐시가 만료되지 않습니다.
      만료 시간을 설정하고 나중에 캐시가 만료되지 않도록 하려면 지속 키를 사용하세요.🎜🎜🎜2.2 LRU 알고리즘을 사용하여 사용하지 않는 데이터를 동적으로 삭제🎜🎜🎜메모리 관리 유형 페이지 교체 알고리즘, 메모리에 있지만 사용되지 않는 데이터 블록(메모리 블록)을 LRU라고 합니다. 운영 체제는 LRU에 속하는 데이터에 따라 다른 데이터를 로드할 공간을 만들기 위해 메모리에서 이를 제거합니다. 🎜🎜🎜🎜🎜휘발성-lru🎜    타임아웃이 설정된 데이터 중 가장 적게 사용되는 데이터를 삭제합니다🎜🎜🎜🎜🎜allkeys-lru🎜    전체 키 중에서 가장 적게 사용되는 데이터를 조회하여 삭제하는 어플리케이션입니다. 가장 광범위한 전략. 🎜🎜🎜🎜🎜휘발성-random🎜  시간 초과가 설정된 데이터에서 🎜🎜🎜🎜🎜allkeys-random🎜을 무작위로 삭제 🎜🎜🎜🎜🎜allkeys-random🎜  🎜🎜🎜🎜🎜 휘발성-ttl 🎜 모든 설정 조회 제한 시간 동안의 데이터는 나중에 정렬되며 공기업 데이터는 곧 삭제됩니다. 이 속성이 설정되면 삭제 작업이 수행되지 않고 오류가 반환됩니다. 🎜   시간 초과로 구성된 모든 키에서 가장 자주 사용되지 않는 키를 삭제하세요🎜
    • allkeys-lfu                       

    , redis.conf 구성 수정 파일.

    초보자로서 Redis는 일반적으로 다음 세 가지 항목을 수정해야 합니다.

    위 내용은 Redis 구성 파일 redis.conf에 대한 매우 상세한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:csdn.net
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿