권장(무료): redis 튜토리얼
Article Directory
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 no
Redis의 구성 파일은 Redis 설치 디렉터리에 있으며 파일 이름은 reids.conf
입니다. 일반적으로 사용되는 30가지 구성이 아래에 Redis의 영어 번역과 함께 제공됩니다. .conf 파일.
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.aof
appendonly.aof
指定更新日志文件名,默认为appendonly.aof。
appendsync everysec
指定更新日志条件,共有三个可选项:
①no:表示等操作系统进行数据缓存同步到磁盘(快)、
②always:表示每次更新操作系统后手动调用fsync()将数据写到磁盘(慢、安全)、
③everysec:表示美妙同步一次(效率折中,为默认值)
最后十个
no
/tmp/redis.swap
0
32
134217728
4
yes
64
/hash-max-zipmap-value 512
yes
/path/to/local.conf
二、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: 한 번 멋진 동기화를 의미합니다(효율성 저하, 기본값)
The last ten
no
vm-swap-file /tmp/redis.swap
vm-max-memory 0
vm-max-memory보다 큰 모든 데이터는 가상 메모리에 저장합니다. vm-max-memory 설정이 아무리 작더라도 모든 인덱스는 데이터는 메모리(Redis의 인덱스 데이터가 키)에 저장된다. 즉, vm-max-memory가 0으로 설정되면 실제로 모든 값이 디스크에 존재하게 된다. 기본값은 0
32
vm-pages 134217728
vm-max-threads 4
스왑 파일에 액세스하는 스레드 수를 설정합니다. 머신의 코어 수를 초과하지 마십시오. 0으로 설정하면 모든 작업이 수행됩니다. 스왑 파일은 직렬이므로 지연 시간이 길어질 수 있습니다. 기본값은 4입니다.
yes
hash-max-zipmap-entries 64
512
activerehashing yes
/path/to/local.conf
🎜키 만료 시간(초)
가장 일반적으로 사용되는 방법입니다🎜🎜setex(String Key, int second, String value )
문자열의 고유한 방법🎜지속 키
를 사용하세요.🎜🎜🎜2.2 LRU 알고리즘을 사용하여 사용하지 않는 데이터를 동적으로 삭제🎜🎜🎜메모리 관리 유형 페이지 교체 알고리즘, 메모리에 있지만 사용되지 않는 데이터 블록(메모리 블록)을 LRU라고 합니다. 운영 체제는 LRU에 속하는 데이터에 따라 다른 데이터를 로드할 공간을 만들기 위해 메모리에서 이를 제거합니다. 🎜🎜🎜🎜🎜휘발성-lru🎜 타임아웃이 설정된 데이터 중 가장 적게 사용되는 데이터를 삭제합니다🎜🎜🎜🎜🎜allkeys-lru🎜 전체 키 중에서 가장 적게 사용되는 데이터를 조회하여 삭제하는 어플리케이션입니다. 가장 광범위한 전략. 🎜🎜🎜🎜🎜휘발성-random🎜 시간 초과가 설정된 데이터에서 🎜🎜🎜🎜🎜allkeys-random🎜을 무작위로 삭제 🎜🎜🎜🎜🎜allkeys-random🎜 🎜🎜🎜🎜🎜 휘발성-ttl 🎜 모든 설정 조회 제한 시간 동안의 데이터는 나중에 정렬되며 공기업 데이터는 곧 삭제됩니다. 이 속성이 설정되면 삭제 작업이 수행되지 않고 오류가 반환됩니다. 🎜 시간 초과로 구성된 모든 키에서 가장 자주 사용되지 않는 키를 삭제하세요🎜allkeys-lfu
초보자로서 Redis는 일반적으로 다음 세 가지 항목을 수정해야 합니다.
daemonize no
/usr/local/redis
,修改 redis.conf 配置文件。
作为初学者Redis一般需要修改下面三项:
no
修改为 daemonize yes
,即改为以守护进程启动。127.0.01
注释掉,即改为允许除本机外的机器访问Redis服务。设置密码
to daemonize yes
주석 처리bind
. 그러면 대신 로컬 컴퓨터가 아닌 컴퓨터가 Redis 서비스에 액세스할 수 있습니다.127.0.01
서비스의 보안을 보장하는🎜🎜추가 관련 학습: 🎜🎜🎜redis🎜🎜🎜🎜requirepass
비밀번호 설정
을 사용하세요./드물게 비밀번호를 설정하지 않으면 원격 액세스가 불가능합니다. Redis는 단일 프로세스 다중 스레드 모드를 채택합니다. redis.conf의 daemonize 옵션이 yes로 설정되면 데몬 프로세스 모드가 활성화된다는 의미입니다. 이 모드에서 redis는 백그라운드에서 실행되며 redis.conf 옵션 pidfile에 의해 설정된 파일에 프로세스 pid 번호를 기록합니다. 이때 프로세스가 수동으로 종료되지 않는 한 redis는 항상 실행됩니다. 그러나 daemonize 옵션이 no로 설정된 경우 현재 인터페이스는 redis 명령줄 인터페이스로 진입합니다. 종료하거나 연결 도구(putty, xshell 등)를 닫으면 redis 프로세스가 종료됩니다. 서버 측에서 개발된 대부분의 애플리케이션은 백그라운드에서 실행됩니다.
위 내용은 Redis 구성 파일 redis.conf에 대한 매우 상세한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!