Redis 트랜잭션은 한 번에 여러 명령을 실행할 수 있습니다. 이는 기본적으로 명령 모음입니다. 트랜잭션의 모든 명령은 직렬화된 다음 다른 명령에 삽입되지 않고 순차적으로 실행됩니다.
1. Redis 트랜잭션이란 무엇인가요?
여러 명령을 동시에 실행할 수 있으며 이는 기본적으로 명령 집합입니다. 트랜잭션의 모든 명령은 직렬화되어 다른 명령에 삽입되지 않고 순서대로 순차적으로 실행됩니다.
2. Redis 트랜잭션은 무엇을 할 수 있나요?
일련의 명령이 대기열에서 순차적으로, 순차적으로, 독점적으로 실행됩니다
3. redis 명령을 사용하는 방법은 무엇입니까?
1. 트랜잭션 관련 명령어 :
(1) DISCARD : 트랜잭션을 취소하고 트랜잭션 블록 내 모든 명령어 실행을 포기
(2) EXEC : 트랜잭션 블록 내 명령어 실행
(3) MULTI : 하나 표시 트랜잭션 시작
(4) UNWATCH: WATCH 명령으로 모든 키 모니터링을 취소
(5) WATCH 키 [key...]: 하나 이상의 키를 모니터링합니다. 또는 이들)이 다른 명령에 의해 트랜잭션 키가 변경되기 전에 실행되면 트랜잭션이 중단됩니다.
2. 트랜잭션 오류 보고 문제:
(1) 명령문 오류: 대기열 추가 시 오류가 직접 보고됩니다. 이 오류가 발생하면 전체 트랜잭션이 롤백됩니다.
(2) 논리 오류: 예를 들어 , 문자열 + 1을 제공합니다. 실행 시 오류가 보고됩니다. 이러한 종류의 오류는 거래의 다른 작업에 영향을 미치지 않습니다. 이 기사에서만 오류가 보고됩니다
3. 감시 모니터링:
(1) 낙관적 잠금:
Optimistic Lock(낙관적 잠금)은 낙관적 잠금으로, 사용됩니다. 계산할 때마다 다른 사람이 데이터를 수정하지 않을 것이라고 생각하므로 잠기지 않습니다. 그러나 업데이트할 때는 이 기간 동안 다른 사람이 데이터를 업데이트했는지 여부를 판단합니다. number"는 낙관적으로 사용됩니다. 다중 읽기 애플리케이션 유형의 경우 이는 처리량을 향상시킬 수 있습니다.
낙관적 잠금 전략: 제출된 버전은 업데이트되기 전에 현재 기록된 버전보다 커야 합니다.
(2) 비관적 잠금
비관적 잠금(Pessimistic Lock)은 데이터를 얻을 때마다 매우 비관적인 잠금입니다. 다른 사람들이 수정을 기반으로 작동하여 덮어쓰기 등의 문제가 발생할 것으로 예상됩니다. 따라서 데이터를 가져올 때마다 잠기므로 다른 사람이 데이터를 가져오려고 하면 차단됩니다. 수정이 완료된 후에는 잠금을 해제하여 사용할 수 있습니다. 전통적인 관계형 데이터베이스는 이러한 잠금 메커니즘을 많이 사용합니다. . 행 잠금, 테이블 잠금, 읽기 잠금, 쓰기 잠금 등은 모두 작업을 수행하기 전에 테이블을 잠급니다.
비관적 잠금은 데이터 보안을 보장하지만 성능을 저하시킵니다
네 가지와 세 가지 기능
1. 별도의 격리 작업:
트랜잭션의 모든 명령이 직렬화되어 순서대로 실행됩니다. 트랜잭션 실행 중에는 다른 클라이언트가 보낸 명령 요청으로 인해 중단되지 않습니다.
2. 격리 수준 개념이 없습니다.
대기열에 있는 명령은 제출되기 전에 실제로 실행되지 않습니다. 트랜잭션이 제출되기 전에 실제로 명령이 실행되지 않기 때문입니다. 따라서 대기열 내에 "쿼리"가 없습니다. "물리적 업데이트이므로 트랜잭션 외부에서 쿼리할 때는 이 문제를 볼 수 없습니다."
3. 원자성은 보장되지 않습니다.
redis 명령이 동일한 트랜잭션에서 실행되지 않으면 후속 명령은 여전히 실행되고 롤백되지 않습니다.
(큐에 합류할 때 오류, 즉 Java와 유사한 컴파일 시간 예외 및 실행 시간 예외가 발생하지 않는 한, 컴파일 시간 예외는 롤백을 유발하고 실행 시간 예외는 롤백되지 않습니다. )
추천 튜토리얼: "Redis Tutorial"
위 내용은 Redis 트랜잭션이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!