Teknologi saluran paip Redis
Redis ialah perkhidmatan TCP berdasarkan model pelayan pelanggan dan protokol permintaan/tindak balas. Ini bermakna bahawa biasanya permintaan akan mengikut langkah berikut:
Pelanggan menghantar permintaan pertanyaan kepada pelayan dan mendengar pengembalian Socket, biasanya dalam mod menyekat, menunggu pelayan untuk bertindak balas.
Pelayan memproses arahan dan mengembalikan hasilnya kepada klien.
Teknologi Saluran Paip Redis
Teknologi Saluran Paip Redis boleh membenarkan pelanggan untuk terus menghantar permintaan kepada pelayan apabila pelayan tidak bertindak balas, dan akhirnya membaca semuanya sekali gus Dapatkan respons daripada semua pelayan.
Instance
Untuk melihat saluran paip redis, anda hanya perlu memulakan contoh redis dan masukkan arahan berikut:
$(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
Dalam contoh di atas, kami menggunakan <🎜 Perintah >PING untuk melihat redis sama ada perkhidmatan itu tersedia, Selepas itu kita tetapkan nilai w3ckey kepada redis, kemudian kita dapat nilai w3ckey dan buat increment pelawat sebanyak 3 kali ganda.
Dalam hasil yang dikembalikan, kita dapat melihat bahawa arahan ini diserahkan kepada perkhidmatan redis sekali gus, dan akhirnya membaca semua respons pelayan sekaligusKelebihan teknologi saluran paip
Kelebihan paling ketara teknologi saluran paip adalah untuk meningkatkan prestasi perkhidmatan redis. Sesetengah data ujianDalam ujian berikut, kami akan menggunakan klien Ruby Redis untuk menyokong ciri teknologi saluran paip untuk menguji kesan peningkatan kelajuan teknologi saluran paip.
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 }Data daripada melaksanakan skrip ringkas di atas pada Mac OS
without pipelining 1.185238 seconds with pipelining 0.250783 secondsSeperti yang anda lihat, selepas membuka saluran paip, kecekapan kelajuan kami meningkat sebanyak 5 kali ganda.