관계형 데이터베이스에 대한 지식이 있는 경우 트랜잭션 중에 Redis 명령이 실행되지 않더라도 Redis는 롤백 작업을 실행하지 않고 트랜잭션에 남아 있는 다른 명령을 계속 실행한다는 사실을 알게 될 것입니다. 이 행동이 이상해요.
그러나 이 동작에는 다음과 같은 근거도 있습니다.
호출된 Redis 명령에 구문 오류가 있는 경우에만 명령이 실패합니다(Redis는 명령을 트랜잭션 대기열에 넣는 동안 이를 감지할 수 있습니다. 이러한 문제). 데이터 유형을 따르지 않는 키: 실제로 이는 프로그램 오류만으로 Redis 명령 실행이 실패함을 의미합니다. 이러한 종류의 오류는 프로그램 개발 중에 발견될 가능성이 높습니다. 일반적으로 프로덕션 환경에서는 거의 발견되지 않습니다. .
Redis는 트랜잭션 롤백 기능이 필요하지 않기 때문에 더 빠른 실행 속도를 보장하기 위해 시스템 내 기능을 단순화했습니다.
Redis 트랜잭션의 이러한 동작에 대해 공통된 반대 의견이 있습니다. 즉, 프로그램에 결함(버그)이 있을 수 있다는 것입니다. 그러나 트랜잭션 롤백은 프로그램 오류를 해결하지 못한다는 점에 유의해야 합니다.
예를 들어 쿼리가 키 값을 1이 아닌 2만큼 증가시키거나 잘못된 키를 증가시키는 경우 트랜잭션 롤백 메커니즘으로는 이러한 프로그램 문제를 해결할 방법이 없습니다. Redis 명령 실행 실패를 유발할 수 있는 프로그래머 자체 오류는 누구도 수정할 수 없습니다. 이러한 프로그램 오류는 프로덕션 환경에 유입될 가능성이 낮기 때문에 오류 롤백을 구현하지 않고 Redis를 개발할 때 더 간단하고 빠른 방법을 선택합니다.
요컨대, 프로그래머 자체로 인해 발생한 오류를 피할 수 있는 메커니즘이 없고 이러한 오류는 일반적으로 프로덕션 환경에서 발생하지 않기 때문에 Redis는 이를 처리하기 위해 더 간단하고 빠른 롤백 없음 방법을 선택했습니다.
추천: "Redis 비디오 튜토리얼"
위 내용은 Redis는 롤백을 지원합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!