Redis의 내부 작동 메커니즘에 대한 자세한 설명
Redis 데이터베이스(Redis가 데이터베이스를 표현하는 방법 및 데이터베이스 작업이 구현되는 방법)
Redis 서버가 초기화되면 redis.h/REDIS_DEFAULT_DBNUM(이하 N으로 약칭) 데이터베이스가 생성되며, 데이터베이스 ID는 0부터 N-1까지입니다. 모든 데이터베이스는 redis.h/redisServer.db 배열에 저장됩니다. .
클라이언트 측에서는 "SELECT" 명령을 통해 전환할 수 있습니다. 프로그램은 redis.h/redisServer.db[number]를 사용하여 직접 전환합니다. 그러나 AOF 프로그램, 복제 프로그램, RDB 프로그램 등 일부 내부 프로그램은 현재 데이터베이스의 번호를 알아야 합니다. id 필드가 없으면 프로그램은 현재 사용되는 데이터베이스와 redisServer의 모든 데이터베이스만 가리킬 수 있습니다. .db 배열. 포인터를 비교하여 사용 중인 데이터베이스를 알아보세요.
새로운 내용:
Redis는 키-값 쌍을 키 공간 사전에 추가합니다. 여기서 키는 문자열이고 값은 모든 값 유형입니다.
삭제:
Redis는 키 공간 사전에 있는 해당 키의 키-값 쌍을 삭제합니다
업데이트:
Redis는 키 공간 사전의 이전 키에 해당하는 값 개체를 해제하고 키가 새 값 개체를 가리키도록 합니다
문의:
Redis는 키 공간 사전에서 해당 키의 값 개체를 쿼리합니다.
키가 존재하지 않습니다. NULL을 반환합니다
키가 존재하고 올바른 유형이므로 올바른 값을 반환합니다
키가 존재하지만 유형이 잘못되었으며 반환 유형이 잘못되었습니다
기타 작업:
위에 표시된 키 값 작업 외에도 데이터베이스 자체에 대한 많은 명령이 있으며 키 공간을 처리하여 완료됩니다.
FLUSHDB 키스페이스의 모든 키-값 쌍 삭제
RANDOMKEY 키 공간에서 임의의 키를 반환합니다
DBSIZE 키 공간에 있는 키-값 쌍의 수를 반환합니다
있음 주어진 키가 키 공간에 존재하는지 확인하세요
RENAME 키 공간에서 주어진 키의 이름을 바꿉니다
Redis 데이터베이스에서 모든 키의 만료 시간은 RedisDb 구조의 만료 사전에 저장됩니다. 여기서 키는 dict 사전(키 공간)의 키에 대한 포인터이고 값은 수정된 만료 시간입니다. long long 유형 표현을 사용합니다.
Redis에는 키의 생존 시간(키가 생존할 수 있는 기간)과 만료 시간(만료되는 시점)을 설정하는 네 가지 명령이 있습니다.
EXPIRE는 키의 수명을 초 단위로 설정합니다.
PEXPIRE는 키의 수명을 밀리초 단위로 설정합니다.
EXPIREAT는 키의 만료 UNIX 타임스탬프를 초 단위로 설정합니다.
PEXPIREAT 키의 만료 UNIX 타임스탬프를 밀리초 단위로 설정합니다.
定时清除:
在创建KEY的时候创建一个定时任务,在KEY到期时定时任务会被触发,第一时间清除过期KEY。
此种操作对内存最友好,不会有垃圾数据占用内存情况存在
缺点是会造成很大的服务器负载,特别是CPU负载高的时候,CPU很大一部分负载用在了删除不必要的KEY上了
惰性清除:
放任键空间的键不管,每次查询KEY的时候先去校验KEY是否过期,过期则删除,不过期则正常返回相应的VALUE。
此种操作对CPU最友好,这种策略仅限于当前KEY,相关不必要的KEY不会造成CPU负载
缺点是:容易造成内存空间浪费,特别是当系统中存在大量过期KEY且很少被用到,这十分影响非常依赖于内存大小Redis的性能
定期删除:
由定时脚本cron定时对expires的键扫描判断是否有过期的KEY存在,如存在,将其删除掉。
这是一种折中方案,既不会过多消耗CPU,又可以定时清楚惰性删除忽略到的不必要的内存消耗
Redis采用的“惰性清除”和“定期清楚”相结合的方式,其中定期删除模式是在规定的时间限制内,尽 可能地遍历各个数据库的 expires 字典,随机地检查一部分键的过期时间,并删除其中的过期键。
伪代码如下:
def activeExpireCycle(): # 遍历数据库(不一定能全部都遍历完,看时间是否足够) for db in server.db: # MAX_KEY_PER_DB 是一个 DB 最大能处理的 key 个数 # 它保证时间不会全部用在个别的 DB 上(避免饥饿) i=0 while (i <p>Redis 过期键删除的主从同步问题(Redis的机制是由主节点统一控制)</p> <p>如果服务器是主节点,当它删除一个过期键之后,会显式的向所有附属节点发送一条DEL命令<br> 如果服务器是附属节点,当它判断到当前KEY已经过期,会将该键过期的消息发送给主服务器,主服务器删除后向所有的从服务器节点发送DEL命令。</p> <p>从服务器节点不自主的对键进行删除是为了保持和主服务器数据的绝对一致性,即当一个过期键还存在主服务器上,这个键在所有的从服务器上也不会被删除。</p>
위 내용은 Redis의 내부 작동 메커니즘에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











Centos와 Ubuntu의 주요 차이점은 다음과 같습니다. Origin (Centos는 Red Hat, Enterprise의 경우, Ubuntu는 Debian에서 시작하여 개인의 경우), 패키지 관리 (Centos는 안정성에 중점을 둡니다. Ubuntu는 APT를 사용하여 APT를 사용합니다), 지원주기 (Ubuntu는 5 년 동안 LTS 지원을 제공합니다), 커뮤니티에 중점을 둔다 (Centos Conciors on ubuntu). 튜토리얼 및 문서), 사용 (Centos는 서버에 편향되어 있으며 Ubuntu는 서버 및 데스크탑에 적합), 다른 차이점에는 설치 단순성 (Centos는 얇음)이 포함됩니다.

Centos는 2024 년에 상류 분포 인 RHEL 8이 종료 되었기 때문에 폐쇄 될 것입니다. 이 종료는 CentOS 8 시스템에 영향을 미쳐 업데이트를 계속받지 못하게합니다. 사용자는 마이그레이션을 계획해야하며 시스템을 안전하고 안정적으로 유지하기 위해 Centos Stream, Almalinux 및 Rocky Linux가 포함됩니다.

CentOS 설치 단계 : ISO 이미지를 다운로드하고 부팅 가능한 미디어를 실행하십시오. 부팅하고 설치 소스를 선택하십시오. 언어 및 키보드 레이아웃을 선택하십시오. 네트워크 구성; 하드 디스크를 분할; 시스템 시계를 설정하십시오. 루트 사용자를 만듭니다. 소프트웨어 패키지를 선택하십시오. 설치를 시작하십시오. 설치가 완료된 후 하드 디스크에서 다시 시작하고 부팅하십시오.

Docker는 Linux 커널 기능을 사용하여 효율적이고 고립 된 응용 프로그램 실행 환경을 제공합니다. 작동 원리는 다음과 같습니다. 1. 거울은 읽기 전용 템플릿으로 사용되며, 여기에는 응용 프로그램을 실행하는 데 필요한 모든 것을 포함합니다. 2. Union 파일 시스템 (Unionfs)은 여러 파일 시스템을 스택하고 차이점 만 저장하고 공간을 절약하고 속도를 높입니다. 3. 데몬은 거울과 컨테이너를 관리하고 클라이언트는 상호 작용을 위해 사용합니다. 4. 네임 스페이스 및 CGroup은 컨테이너 격리 및 자원 제한을 구현합니다. 5. 다중 네트워크 모드는 컨테이너 상호 연결을 지원합니다. 이러한 핵심 개념을 이해 함으로써만 Docker를 더 잘 활용할 수 있습니다.

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

Centos Hard Disk Mount는 다음 단계로 나뉩니다. 하드 디스크 장치 이름 (/dev/sdx)을 결정하십시오. 마운트 포인트를 만듭니다 ( /mnt /newdisk를 사용하는 것이 좋습니다); 마운트 명령을 실행합니다 (mount /dev /sdx1 /mnt /newdisk); 영구 마운트 구성을 추가하려면 /etc /fstab 파일을 편집하십시오. Umount 명령을 사용하여 장치를 제거하여 프로세스가 장치를 사용하지 않도록하십시오.

Centos가 중단 된 후 사용자는 다음과 같은 조치를 취할 수 있습니다. Almalinux, Rocky Linux 및 Centos 스트림과 같은 호환되는 분포를 선택하십시오. Red Hat Enterprise Linux, Oracle Linux와 같은 상업 분포로 마이그레이션합니다. Centos 9 Stream : 롤링 분포로 업그레이드하여 최신 기술을 제공합니다. Ubuntu, Debian과 같은 다른 Linux 배포판을 선택하십시오. 컨테이너, 가상 머신 또는 클라우드 플랫폼과 같은 다른 옵션을 평가하십시오.

Centos는 중단되었으며 대안은 다음과 같습니다. 1. Rocky Linux (Best Compatibility); 2. Almalinux (Centos와 호환); 3. Ubuntu 서버 (구성 필수); 4. Red Hat Enterprise Linux (상업용 버전, 유료 라이센스); 5. Oracle Linux (Centos 및 Rhel과 호환). 마이그레이션시 고려 사항은 호환성, 가용성, 지원, 비용 및 커뮤니티 지원입니다.
