Redis 명령 조작 중국어...login
Redis 명령 조작 중국어 매뉴얼
작가:php.cn  업데이트 시간:2022-04-12 14:07:28

Redis 파이프라인 기술


Redis는 클라이언트-서버 모델과 요청/응답 프로토콜을 기반으로 하는 TCP 서비스입니다. 이는 일반적으로 요청이 다음 단계를 따른다는 것을 의미합니다.

  • 클라이언트는 서버에 쿼리 요청을 보내고 일반적으로 차단 모드에서 소켓 반환을 수신하여 서버의 응답을 기다립니다.

  • 서버는 명령을 처리하고 결과를 클라이언트에 반환합니다.


Redis 파이프라인 기술

Redis 파이프라인 기술을 사용하면 서버가 응답하지 않을 때 클라이언트가 서버에 계속 요청을 보내고 결국 모든 서버의 응답을 한 번에 읽을 수 있습니다.

Instance

redis 파이프라인을 보려면 redis 인스턴스를 시작하고 다음 명령을 입력하기만 하면 됩니다.

$(echo -en "PING\r\n SET w3ckey redis\r\nGET w3ckey\r\nINCR visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379

+PONG
+OK
redis
:1
:2
:3

위 예에서는 PING 명령을 사용하여 Redis 서비스를 사용할 수 있는지 확인합니다. 그런 다음 w3ckey 값을 redis로 설정하고 w3ckey 값을 가져와 방문자를 3배 증가시킵니다.

반환된 결과를 보면 이 명령들이 한번에 redis 서비스에 제출되고, 최종적으로 모든 서버의 응답을 한꺼번에 읽는 것을 볼 수 있습니다


파이프라인 기술의 장점

파이프라인 기술의 가장 큰 장점은 이는 Redis 서비스 성능의 효율성을 향상시킵니다.

일부 테스트 데이터

다음 테스트에서는 파이프라인 기술 기능을 지원하는 Redis의 Ruby 클라이언트를 사용하여 파이프라인 기술의 속도 향상 효과를 테스트해 보겠습니다.

require 'rubygems' 
require 'redis'
def bench(descr) 
start = Time.now 
yield 
puts "#{descr} #{Time.now-start} seconds" 
end
def without_pipelining 
r = Redis.new 
10000.times { 
	r.ping 
} 
end
def with_pipelining 
r = Redis.new 
r.pipelined { 
	10000.times { 
		r.ping 
	} 
} 
end
bench("without pipelining") { 
	without_pipelining 
} 
bench("with pipelining") { 
	with_pipelining 
}

Mac OS에서 위의 간단한 스크립트를 실행하여 얻은 데이터

without pipelining 1.185238 seconds 
with pipelining 0.250783 seconds

보시다시피 파이프라인을 연 후 속도 효율성이 5배나 향상되었습니다.

PHP 중국어 웹사이트