마인드 맵 갤러리 레디스
자세한 소개와 종합적인 설명이 담긴 Redis에 대한 마인드맵입니다. 관심있는 친구들에게 도움이 되었으면 좋겠습니다!
2023-12-21 17:36:42에 편집됨이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
레디스
사무
정의
트랜잭션은 별도의 격리 작업으로, 트랜잭션의 모든 작업은 순서대로 직렬화되어 실행됩니다. 다른 고객 서비스 터미널에서 보낸 명령으로 인해 트랜잭션 실행이 중단되지 않습니다.
효과
다른 명령이 대기열에서 점프하는 것을 방지하기 위해 여러 명령을 연결합니다.
주문하다
시계 키 [키 ...]
다중을 실행하기 전에 하나 이상의 키를 모니터링할 수 있는 watch key1 [key2]를 먼저 실행하십시오. 트랜잭션이 실행되기 전에 이 키가 다른 명령에 의해 변경되면 트랜잭션이 중단됩니다.
다중
입력된 명령은 명령 대기열에 들어가지만 실행되지는 않습니다. Exec 명령이 실행될 때까지 기다렸다가 순서대로 실행합니다.
임원
명령 대기열 실행
버리다
명령 대기열 삭제
거래 오류 처리
팀 구성이 성공하고 모든 명령이 순서대로 실행됩니다.
팀이 성공적으로 구성되면 폐기를 선택하면 모든 명령이 실행되지 않습니다.
큐에 있는 명령에 오류가 발생하면 실행 중에 전체 큐가 취소됩니다.
팀이 성공적으로 구성되었지만 실행 중 특정 명령이 잘못되었습니다. 잘못된 명령을 제외하고 다른 모든 명령이 실행됩니다.
Redis 트랜잭션은 원자적이지 않습니다.
Redis 트랜잭션의 세 가지 주요 특징
별도의 검역 운영
트랜잭션의 모든 명령은 직렬화되어 순차적으로 실행됩니다. 트랜잭션이 실행되는 동안 다른 클라이언트가 보낸 명령 요청으로 인해 중단되지 않습니다.
격리 수준 개념 없음
‐트랜잭션이 제출되기 전에는 실제로 명령이 실행되지 않으므로 대기열에 있는 명령은 제출될 때까지 실제로 실행되지 않습니다.
원자성을 보장하지 않음
트랜잭션의 명령이 실행되지 않으면 롤백 없이 후속 명령이 계속 실행됩니다.
Redis 트랜잭션과 Mysql 트랜잭션의 차이점(ACID 중심)
😋
고집
RDB
핵심 구성
저장 경로: 기본값은 시작 디렉터리에 있습니다. 구성 파일을 수정하여 경로를 변경할 수 있습니다.
dbfilename 구성 파일 이름
😋
구하다
😋
몇 초 동안 몇 번의 작업이 수행되었습니까?
RDB 트리거
자동으로 저장 실행
RDB 지속성이 완료될 때까지 기본 프로세스를 차단합니다.
수동저장 : bgsave
Redis는 백그라운드에서 비동기적으로 스냅샷 작업을 수행하며, 스냅샷은 클라이언트 요청에도 응답할 수 있습니다.
lastsave를 통해 마지막 스냅샷 실행 시간을 얻을 수 있습니다.
주요 프로세스를 차단하지 않습니다
플러시홀 명령 실행
플러시올 명령을 실행하면 dump.rdb 파일도 생성되지만 비어 있고 의미가 없습니다.
flashdb 명령이 dump.rdb 파일을 생성하지 않습니다.
정상적으로 Redis 종료
redis.conf의 추가 구성
bgsave-오류 시 쓰기 중지
Redis가 디스크에 쓸 수 없는 경우 Redis의 쓰기 작업을 직접 끄십시오. 추천합니다 예
rdb압축 압축 파일
압축을 위해 CPU를 소비하지 않으려면 이 기능을 끄기로 설정할 수 있습니다. 네 추천합니다.
rdbchecksum은 무결성을 검사합니다.
스냅샷을 저장한 후 Redis에게 데이터 확인을 위해 CRC64 알고리즘을 사용하도록 요청할 수도 있습니다.
지속성 프로세스(메모리 스냅샷)
Redis는 지속성을 위해 별도로 하위 프로세스를 생성(포크)합니다. 먼저 데이터를 임시 파일에 기록합니다. 지속성 프로세스가 완료된 후 이 임시 파일은 마지막 지속 파일을 대체하는 데 사용됩니다. 전체 프로세스 동안 메인 프로세스는 IO 작업을 수행하지 않으므로 매우 높은 성능을 보장합니다. 대규모 데이터 복구가 필요하고 데이터 복구의 무결성이 그다지 중요하지 않은 경우 RDB 방법이 AOF 방법보다 효율적입니다. .고효율. RDB의 단점은 마지막 지속성 이후의 데이터가 손실될 수 있다는 것입니다.
Fork의 기능은 현재 프로세스와 동일한 프로세스를 복사하는 것입니다. 새 프로세스의 모든 데이터(변수, 환경 변수, 프로그램 카운터 등)는 원래 프로세스와 동일한 값을 가지지만 완전히 새로운 프로세스이며 원래 프로세스의 하위 프로세스 역할을 합니다.
이점
대규모 데이터 복구에 적합
높지 않은 데이터 무결성 및 일관성 요구 사항에 더 적합
디스크 공간 절약
빠른 복구
단점
마지막 스냅샷의 모든 수정 사항이 손실될 수 있습니다.
AOF
소개하다
각 쓰기 작업을 로그 형식으로 기록합니다. 파일은 추가만 가능하고 다시 쓸 수는 없습니다.
기본적으로 활성화되지 않음
부록으로 아니요
AOF와 RDB가 동시에 활성화되면 AOF에 우선 순위가 부여됩니다.
지속성 프로세스
클라이언트가 요청한 쓰기 명령은 AOF 버퍼에 추가됩니다.
AOF 버퍼는 AOF 지속성 정책에 따라 작업을 디스크의 AOF 파일과 동기화합니다.
AOF 파일이 다시 쓰기 정책을 초과하거나 수동으로 다시 작성되는 경우 AOF 파일 용량을 압축하기 위해 AOF 파일을 다시 작성합니다.
Redis 서버가 다시 시작되면 AOF 파일에 쓰기 작업이 로드됩니다.
동기화 빈도 설정
항상 부록동기화
항상 동기화되며 모든 Redis 쓰기는 즉시 로그에 기록됩니다. 성능은 좋지 않지만 데이터 무결성은 더 좋습니다.
매초마다 Appendfsync
1초마다 동기화하고 먼저 AOF 파일의 메모리 버퍼에 로그를 쓴 다음 1초마다 버퍼의 내용을 디스크에 씁니다. 다운타임이 발생하면 이 초의 데이터가 손실될 수 있습니다.
Appendfsync 아니오
Redis는 적극적으로 동기화하지 않으며 동기화 시기를 운영 체제에 맡깁니다.
이점
백업 메커니즘이 더욱 강력해지고 데이터가 쉽게 손실되지 않습니다.
오류 작업을 처리하기 위해 읽을 수 있는 로그 파일
단점
RDB보다 더 많은 디스크 공간을 차지합니다.
느린 회복
읽기와 쓰기가 매번 동기화되면 성능이 저하됩니다.
복구를 불가능하게 만드는 몇 가지 버그가 있습니다.
Redis 만료된 키 삭제 전략
Redis는 일반 삭제 전략과 지연 삭제 전략을 조합하여 사용합니다.
주기적 삭제: 때때로 만료 시간이 있는 키를 무작위로 선택하여 만료되었는지 확인하고 만료 후 삭제합니다.
1초마다 10회 반복하고, 무작위로 20개의 키를 선택하여 만료 여부를 확인합니다. 키의 25%가 만료된 경우 이 동작을 반복합니다.
만료된 키가 많이 누락됩니다.
지연 삭제: 데이터가 만료되면 먼저 처리되지 않고 만료된 키에 액세스하면 삭제됩니다.
시간과 공간을 교환하라
만료된 키가 많이 누락되어 확인되지 않으면 지연 삭제가 수행되지 않습니다. 만료된 키가 대량으로 메모리에 축적되어 이때 메모리 제거 메커니즘이 사용됩니다.
마스터-슬레이브 복제
무엇인가요
호스트 데이터가 업데이트된 후 데이터는 정책에 따라 마스터/슬레이브 메커니즘에 자동으로 동기화됩니다. 마스터는 쓰기를 담당하고 슬레이브는 읽기를 담당합니다.
당신은 무엇을 할 수 있나요
읽기와 쓰기 분리, 성능 확장
가용성 향상을 위한 재해 복구 및 신속한 복구
게임 방법
여러 Redis 서비스 시작
슬레이브 라이브러리 구성
IP 포트의 슬레이브 실행
마스터-슬레이브 정보 쿼리
정보 복제
일반적인 상황
주인 한 명과 하인 두 명
슬레이브 머신이 쓸 수 있나요? 설정이 가능한가요?
쓸 수도 없고 설정할 수도 없습니다.
호스트가 종료된 후에는 어떻게 되나요? 슬레이브가 상위 위치에 있습니까, 아니면 대기 상태입니까?
슬레이브 머신이 대기 중입니다.
마스터가 돌아와서 마스터가 새 레코드를 추가한 후에도 슬레이브가 이를 원활하게 복사할 수 있습니까?
할 수 있다
슬레이브 머신 중 하나가 다운된 후에는 어떻게 되나요? 이대로 대군을 따라잡을 수 있을까?
할 수 있다
횃불을 전달
마스터와 슬레이브의 이중 ID를 가진 머신이 데이터를 쓸 수 있나요? ?
아니요, 슬레이브의 신원이 있는 한 데이터를 쓸 수 없습니다.
주로 고객 반대
마스터 머신이 다운된 경우 수동으로 슬레이브 머신을 마스터 머신으로 전환할 수 있습니다.
복사 원리
슬레이브가 시작되고 마스터에 성공적으로 연결되면 동기화 명령을 보냅니다.
마스터는 백그라운드 저장 프로세스를 시작하라는 명령을 수신하고 데이터 세트 수정을 위해 수신된 모든 명령을 수집합니다. 백그라운드 프로세스가 완료된 후 마스터는 전체 RDB 데이터 파일을 슬레이브에 전송하여 완전한 동기화를 완료합니다.
전체 복사: 슬레이브 서비스는 데이터베이스 파일 데이터를 수신한 후 이를 저장하고 메모리에 로드합니다.
증분 복제: 마스터는 동기화를 완료하기 위해 새로 수집된 모든 수정 명령을 슬레이브에 계속 전달합니다.
그러나 마스터가 다시 연결되어 있는 한 전체 동기화(전체 복제)는 자동으로 수행됩니다.
감시 모드
Sentinel은 기능 모드에서 실행되는 Redi 프로세스이며 세 가지 주요 작업이 있습니다.
감시 장치
모든 마스터-슬레이브 라이브러리에 PING 명령을 보내 살아 있는지 확인합니다. 지정된 시간 내에 응답하지 않으면 오프라인으로 판단됩니다.
주관적인 오프라인
센티널이 PING 명령에 대한 마스터 또는 슬레이브 라이브러리의 응답 시간이 초과되었음을 발견하면 현재 센티널이 먼저 이를 표시합니다. "주관적인 오프라인
목표 오프라인
N/2 1개의 센티널이 기본 데이터베이스를 주관적으로 오프라인으로 표시하면 기본 데이터베이스는 "객관적으로 오프라인"으로 표시됩니다.
기본 데이터베이스가 객관적으로 오프라인으로 표시된 경우에만 Sentinel은 새 기본 데이터베이스를 선택합니다.
센티넬이 1개만 있고, 네트워크상의 이유나 메인 데이터베이스에 대한 과도한 부담으로 인해 메인 데이터베이스가 센티넬에 제때 응답하지 못하고 센티널에 의해 주관적인 오프라인으로 표시되는 경우, 이때 센티넬은 1개만 존재하게 됩니다. , 새 기본 데이터베이스가 직접 선택됩니다. 센티널이 있는 경우 새 기본 데이터베이스가 클러스터에서 N/2 1개 이상의 센티널이 기본 데이터베이스를 주관적 오프라인으로 표시해야 합니다. 객관적으로 오프라인으로 표시되고 센티널은 잘못된 판단을 줄이기 위해 새로운 기본 데이터베이스를 선택합니다.
마스터를 선택하세요
마스터 라이브러리가 실패하면 슬레이브 시스템에서 새 마스터 라이브러리가 선택됩니다.
새로운 마스터 데이터베이스를 선택하는 프로세스
필터
라이브러리의 현재 온라인 상태에서 이전 네트워크 연결 상태도 확인해야 합니다.
점수
슬레이브 라이브러리 우선순위
라이브러리에서 진행 상황 복사
슬레이브 라이브러리 ID 번호
통지하다
새 마스터 라이브러리 정보를 다른 슬레이브 라이브러리에 보내고, 다른 슬레이브 라이브러리가 새 마스터 라이브러리와 연결을 설정하고 데이터 복제를 수행하도록 합니다.
무엇인가요
고객 지향 자동 버전은 호스트에 결함이 있는지 여부를 백그라운드에서 모니터링할 수 있으며, 실패할 경우 투표 수에 따라 자동으로 슬레이브 데이터베이스에서 기본 데이터베이스로 전환됩니다.
게임 방법
새 sentinel.conf 파일을 생성합니다. 이름이 틀려서는 안 됩니다.
Sentinel을 구성하고 내용을 입력하세요.
센티넬 모니터 mymaster 127.0.0.1 6379 1
이 중 mymaster는 모니터링 대상의 서버 이름이고, 1은 마이그레이션에 동의하는 최소 센티넬 수입니다.
센티넬 시작
/usr/로컬/빈
redis-sentinel /myredis/sentinel.conf 실행
마스터가 전화를 끊으면 슬레이브 중에서 새 마스터가 선택됩니다.
선거 규칙
우선 사항
redis.conf의 기본값: 복제본 우선순위 100, 값이 작을수록 우선순위가 높아집니다.
오프셋
오프셋은 원래 호스트에서 얻은 가장 완전한 데이터를 나타냅니다.
흐릿한
각 Redis 인스턴스가 시작된 후 40자리 runid가 무작위로 생성됩니다(정보 서버를 통해 획득하고 확인).
무리
클러스터란 무엇인가
Redis의 수평적 확장
클러스터의 일부 노드가 실패하거나 통신할 수 없는 경우 클러스터는 계속해서 명령 요청을 처리할 수 있습니다.
마스터 머신이 다운되면 슬레이브 머신이 자동으로 마스터로 승격됩니다.
구성
Redis 클러스터 구성 수정
클러스터 활성화 예 클러스터 모드를 켭니다.
Cluster-config-file node-6379.conf는 노드 구성 파일 이름을 설정합니다.
Cluster-node-timeout 15000은 노드 연결 해제 시간을 설정합니다(밀리초). 클러스터는 마스터와 슬레이브 간에 자동으로 전환됩니다.
시작하다
redis-cli --cluster create --cluster-replicas 1 192.168.11.101:6379 192.168.11.101:6380 192.168.11.101:6381 192.168.11.101:6389 192.168.11.101:6390 192 .168.11.101:6391
127.0.0.1을 사용하지 마시고, 실제 IP 주소를 사용하시기 바랍니다
슬롯이란 무엇입니까?
Redis 클러스터에는 16384개의 해시 슬롯이 포함되어 있으며 데이터베이스의 각 키는 이러한 16384개의 슬롯 중 하나에 속합니다.
동일한 슬롯에 없는 키 값에 대해서는 mget, mset 등 다중 키 연산을 사용할 수 없습니다.
클러스터링의 단점
다중 키 조작은 지원되지 않습니다
다중 키 Redis 트랜잭션은 지원되지 않습니다. lua 스크립트는 지원되지 않습니다
더 복잡한
클러스터에 3개 이상의 노드가 필요한 이유
노드가 다운되고 노드 중 절반 이상이 핑퐁 투표 메커니즘을 통해 다운되었다고 생각하면 클러스터가 다운됩니다. 노드가 두 개만 있고 한 노드가 다운되면 다른 노드가 투표합니다. 50%에 불과하지만 그 중 절반은 이 클러스터가 실패하지 않으므로 최소 3개의 노드가 필요합니다.
클러스터에 6개 이상의 서버가 필요한 이유
클러스터에는 3개 이상의 노드가 필요하고 각 노드에는 백업 시스템이 필요하므로 클러스터에는 6개 이상의 서버가 필요합니다.
JAVA 연결 개발 Jedis
종속성: <artifactId>jedis</artifactId>
JedisPool 연결 풀
😋
setBlockWhen 지쳤을 때
/연결이 소진될 때 차단할지 여부, false는 예외를 보고하고, true는 시간 초과까지 차단하며, 기본값은 true입니다.
setTestOnBorrow
Connection Pool에서 Connection을 가져올 때 해당 Connection이 비활성화되었는지 확인
JedisPool 객체 자동 연결
다섯 가지 주요 데이터 유형
애플리케이션
😋
기본 사용
설치 매뉴얼
/usr/local/bin 입니다.
redis-benchmark: 노트북이 어떻게 작동하는지 확인하기 위해 노트북에서 실행할 수 있는 성능 테스트 도구입니다.
redis-check-aof: 문제가 있는 AOF 파일을 복구합니다. rdb 및 aof는 나중에 논의됩니다.
redis-check-dump: 문제가 있는 dump.rdb 파일 수정
redis-sentinel: Redis 클러스터에서 사용됩니다.
redis-server: Redis 서버 시작 명령
redis-cli: 클라이언트, 작업 입구
구성 파일 redis.conf
백그라운드에서 시작
아니오를 예에 데몬화하다
서버 redis-server /myredis/redis.conf 시작
클라이언트를 사용하여 redis-cli에 액세스
-p는 포트를 지정합니다
-c 클러스터 모드
네트워크 관련 구성
묶다
기본적으로 로컬 액세스만 허용됩니다.
쓰기가 없다는 것은 모든 IP 주소에 대한 무제한 액세스를 의미합니다.
보호 모드보호 모드
기본적으로 활성화되어 있습니다. 모든 IP 주소에서 접근이 허용되더라도 접근이 성공할 수 없습니다.
😋
포트 포트 번호
기본값 6379
tcp-backlog 연결 큐
😋
시간 초과 시간 초과 시간
유휴 클라이언트가 닫히는 데 얼마나 걸립니까? 0은 이 기능을 끕니다. 즉, 연결이 끊어지지 않습니다.
클라이언트의 tcp-keepalive 하트비트 감지
0으로 설정하면 Keepalive 감지가 수행되지 않습니다.
공통 구성
데몬 스레드를 데몬화하다
기본 no 설정은 yes입니다. 이는 데몬 프로세스이며 백그라운드에서 시작될 수 있습니다.
pidfile pid 파일이 저장되는 위치
로그 수준 로그 수준
디버그: 개발/테스트 단계에 적합한 대량의 정보를 인쇄하고 생성합니다.
verbose: 덜 유용한 정보가 많이 포함되어 있지만 디버그 수준만큼 혼란스럽지는 않습니다.
주의 사항: 다소 장황하며 프로덕션 환경에 적합합니다.
경고: 매우 중요하고 심각한 경고 메시지만 기록합니다.
로그파일 로그 파일 이름
기본값은 로그 파일 표준 출력입니다.
데이터베이스는 데이터베이스 수를 설정합니다.
기본 데이터베이스 수는 16이고 기본적으로 선택된 데이터베이스는 0입니다.
한계
maxclients 최대 서버 연결 수
기본값은 1W 연결입니다. 상한에 도달하면 연결이 거부됩니다.
최대 메모리
반드시 설정하는 것이 좋습니다. 그렇지 않으면 메모리가 가득 차서 서버가 충돌할 수 있습니다.
maxmemory-policy 메모리 제거 정책
―휘발성-lru: LRU 알고리즘을 사용하여 키를 제거합니다. 만료 시간이 설정된 키만(가장 최근에 사용됨)
―휘발성-ttl: TTL 값이 가장 작은 키, 즉 최근에 만료되는 키를 제거합니다.
―휘발성-랜덤: 만료된 세트에서 임의의 키를 제거하고 만료 시간이 설정된 키만 제거합니다.
‚allkeys-lru: LRU 알고리즘을 사용하여 설정된 모든 키에서 키를 제거합니다.
‚allkeys-random: 모든 설정된 키에서 임의의 키를 제거합니다.
Ønoeviction: 제거되지 않습니다. 쓰기 작업의 경우 오류 정보만 반환됩니다.
😋
메모리 제거 정책 설정 시 밑줄 대신 대시를 사용해 주세요 🙌
IO 제한
io-threads-do-reads IO 멀티스레딩 활성화 여부
기본값은 no입니다. 활성화된 경우 yes로 변경합니다.
io-threads IO 스레드 수
4코어 머신의 경우 2~3개의 스레드를 설정하고 8코어 머신의 경우 6개의 스레드를 설정하는 것이 좋습니다. 스레드 수는 머신 코어 수보다 적어야 하며 8을 초과하지 않도록 노력하십시오.
Redis가 닫혔습니다.
단일 인스턴스 종료
redis-cli 종료
다중 인스턴스 종료
redis-cli -p 6379 종료
단일 스레드 다중 IO 다중화
😋
Redis6.0에는 멀티스레딩이 도입되었습니다.
NoSQL 데이터베이스
NoSQL 데이터베이스란?
SQL 표준을 따르지 않습니다.
ACID를 지원하지 않습니다
원자성
일관성
격리
고집
SQL의 성능을 훨씬 능가합니다.
적용 가능한 장면
높은 동시 데이터 읽기 및 쓰기
대용량 데이터 읽기 및 쓰기
데이터 확장성이 뛰어남
사용되지 않은 시나리오
거래 지원이 필요합니다
구조화된 쿼리 저장소, 복잡한 관계 처리 및 임시 쿼리가 필요합니다.
임시 쿼리: 사용자는 자신의 필요에 따라 쿼리 조건을 유연하게 선택할 수 있으며 시스템은 사용자의 선택에 따라 해당 통계 보고서를 생성합니다.
Redis의 5가지 주요 데이터 유형
문자열 유형
증가하다
set <key><value>키-값 쌍 추가
setex <key><expiration time><value> 키 값 설정 시 만료 시간을 초 단위로 설정합니다.
setnx <key><value>키가 존재하지 않는 경우에만 키 값을 설정합니다.
mset <key1><value1><key2><value2>동시에 하나 이상의 키-값 쌍 설정
확인하다
get <key> 해당 키 값을 조회합니다.
strlen <key>는 값의 길이를 가져옵니다.
mget <key1><key2><key3> 동시에 하나 이상의 값을 가져옵니다.
getrange <key><start position><end position> Java, 프론트 패키지, 백 패키지의 하위 문자열과 유사한 값 범위를 가져옵니다.
변화
증분 <키>
키에 저장된 숫자값을 1씩 증가시킵니다.
숫자 값에만 작동할 수 있습니다. 비어 있으면 새 값은 1입니다.
감소 <키>
키에 저장된 숫자 값을 1씩 감소시킵니다.
숫자 값에만 작동할 수 있습니다. 비어 있으면 새 값은 -1입니다.
incrby / decrby <key><step> 키에 저장된 숫자 값을 늘리거나 줄입니다. 사용자 정의 단계 크기.
삭제
델 키
특별한
Append <key><value>는 주어진 <value>를 원래 값의 끝에 추가합니다.
getset <키><값>
이전 값을 새 것으로 교체하고 새 값을 설정하는 동시에 이전 값을 가져옵니다.
제품번호와 주문번호는 문자열의 숫자증가 특성을 이용하여 생성됩니다.
목록 유형
증가하다
lpush/rpush <key><value1><value2><value3> .... 왼쪽/오른쪽에서 하나 이상의 값을 삽입합니다.
확인하다
lrange <키><시작><중지>
인덱스 첨자에 따라 요소 가져오기(왼쪽에서 오른쪽으로)
lindex <key><index>인덱스 첨자에 따라 요소 가져오기(왼쪽에서 오른쪽으로)
llen <key>는 목록 길이를 가져옵니다.
변화
lset<key><index><value> 목록 키의 아래 첨자가 인덱스인 값을 값으로 바꿉니다.
삭제
lrem <key><n><value>값과 같은 n개 요소를 왼쪽에서(왼쪽에서 오른쪽으로) 삭제합니다.
특별한
lpop/rpop <key>왼쪽/오른쪽부터 값을 출력합니다. 값은 키에 있고 값은 키에 있습니다.
rpoplpush <key1> <key2>는 <key1> 목록의 오른쪽에 있는 값을 뽑아 <key2> 목록의 왼쪽에 삽입합니다.
<value><newvalue> 앞에 linsert <key> 값을 삽입하려면 <value> 뒤에 <newvalue>를 삽입하세요.
친구 목록, 팬 목록, 메시지 대기열, 최신 뉴스 순위 등 rpush 메소드는 메시지를 큐에 넣는 것과 동일하며, lpop/rpop은 소비를 위해 큐에서 메시지를 가져오는 것과 같습니다.
해시 유형
증가하다
hset <key><field><value>는 <key> 컬렉션의 <field> 키에 <value>를 할당합니다.
hmset <key1><field1><value1><field2><value2>... 해시 값을 일괄 설정
확인하다
hget <key1><field>는 <key1> 컬렉션 <field>에서 값을 검색합니다.
hmget <key1><field1> <field2>... 해시 값을 일괄적으로 가져옵니다.
hlen <key>는 해시의 필드 값 수를 가져옵니다.
hexists<key1><field>해시 테이블 키에 해당 필드 필드가 존재하는지 확인
변화
hincrby <key><field><increment>는 해시 테이블 키의 필드 값에 증분을 추가합니다(음수는 빼기를 의미함).
hsetnx <key><field><value>는 필드 필드가 존재하지 않는 경우에만 해시 테이블 키의 필드 값을 value로 설정합니다.
삭제
hdel <key><field>는 <key> 컬렉션에서 지정된 <field>를 삭제합니다.
특별한
hgetall <key>는 모든 필드와 값을 가져옵니다.
hkeys <key>는 해시 세트의 모든 필드를 나열합니다.
hvals <key>는 해시 세트의 모든 값을 나열합니다.
사용자 정보, 제품 정보, 주문 정보 등을 저장하기 위해 객체를 사용합니다.
Z세트 유형
증가하다
zadd <키><점수1><멤버 1><점수2><멤버 2>…
하나 이상의 멤버 요소와 해당 점수 값을 정렬된 세트 키에 추가합니다.
확인하다
zcard<key>는 순서가 지정된 세트의 요소 수를 반환합니다.
zcount <key><min><max>는 세트 수, 점수 간격의 요소 수를 계산합니다.
zrange <key><start><stop> [WITHSCORES] 작은 것부터 큰 것까지 정렬
아래 첨자가 <start><stop> 사이에 있는 순서가 지정된 세트 키의 요소를 반환합니다.
WITHSCORES를 사용하면 점수와 값을 결과 세트로 반환할 수 있습니다.
zrevrange <key><start><stop> [WITHSCORES] 큰 것부터 작은 것까지 정렬
zrangebyscore 키 min max [withscores] [오프셋 수 제한]
점수 값이 min과 max 사이(min 또는 max와 같음 포함)인 정렬된 집합 키의 모든 멤버를 반환합니다. 순서가 지정된 세트의 구성원은 점수 값이 증가하는 순서(작은 것부터 큰 것까지)로 배열됩니다.
zrevrangebyscore key max min [withscores] [limit offset count] (매개변수는 크기임에 유의)
위와 동일하지만 가장 큰 것부터 가장 작은 것 순으로 정렬됩니다.
zrank <key><member>는 순서가 지정된 세트 키의 멤버 순위를 반환합니다. 순서가 지정된 세트의 구성원은 점수 값이 증가하는 순서(작은 것부터 큰 것까지)로 배열됩니다. 순위는 0을 기준으로 합니다. 즉, 점수 값이 가장 작은 멤버가 0순위가 됩니다.
zrevrank <key><member> 점수 값이 높은 순서대로(큰 것부터 작은 것까지) 회원의 순위를 가져옵니다.
변화
아연rby <key><increment><member > 요소 점수에 증분을 추가합니다.
삭제
zrem <key><member>컬렉션에서 지정된 값을 가진 요소를 삭제합니다.
특별한
순위: 예를 들어 비디오 웹사이트는 사용자가 업로드한 비디오의 순위를 매겨야 합니다.
세트타입
증가하다
sadd <키><값1><값2> .....
컬렉션 키에 하나 이상의 구성원 요소를 추가하면 기존 구성원 요소가 무시됩니다.
확인하다
smembers <key>는 컬렉션의 모든 값을 꺼냅니다.
Scard<key>는 컬렉션의 요소 수를 반환합니다.
ismember<key> <value> 컬렉션의 값이 이미 존재하는지 쿼리
변화
삭제
srem <key><value1><value2> .... 컬렉션에서 요소 삭제
특별한
spop <key>는 컬렉션에서 임의의 값을 뱉어냅니다.
smove <source><destination>value 컬렉션의 값을 한 컬렉션에서 다른 컬렉션으로 이동합니다.
sinter <key1><key2>는 두 세트의 교차 요소를 반환합니다.
sunion <key1><key2>는 두 세트의 통합 요소를 반환합니다.
sdiff <key1><key2>는 두 집합의 차이 요소(key1에 있는 요소, key2의 요소 제외)를 반환합니다.
투표 기록 공통친구, 공통관심사, 분류 태그