Redis Pipeline Technology
Redis didasarkan pada client - server model dan permintaan / respon layanan protokol TCP. Ini berarti bahwa permintaan biasanya akan mengikuti langkah-langkah ini:
- Klien mengirimkan permintaan ke server, dan mendengarkan Socket kembali, biasanya dalam modus blocking, menunggu respon dari server.
- perintah pengolahan server dan mengembalikan hasil ke klien.
Redis Pipeline Technology
teknologi pipa Redis tidak bisa menanggapi pada saat server, klien dapat terus mengirim permintaan ke server, dan akhirnya sekaligus untuk membaca respon dari server.
contoh
Lihat pipa Redis, hanya Anda harus mulai contoh Redis dan masukkan perintah berikut:
$(echo -en "PING\r\n SET w3bigkey redis\r\nGET w3bigkey\r\nINCR visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379 +PONG +OK redis :1 :2 :3
Dengan menggunakan contoh kita perintahPING Redis layanan di atas tersedia, maka kami telah menetapkan Redis nilai w3bigkey, dan kemudian kita mendapatkan nilai w3bigkey dan membuat selisih pengunjung 3 kali.
Dalam hasil kembali, kita dapat melihat perintah-perintah ini sekaligus diserahkan ke Redis layanan, dan akhirnya sekaligus untuk membaca respon dari server
Keuntungan Pipeline Technology
Keuntungan yang paling signifikan dari teknologi untuk meningkatkan pelayanan Redis kinerja pipa.
Beberapa data uji
Dalam pengujian berikut, kita akan menggunakan klien Redis Ruby yang mendukung karakteristik teknis pipa, teknologi pipa tes untuk meningkatkan efek kecepatan.
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 }
Dari LAN di Mac sistem OS X untuk melakukan data di atas menunjukkan bahwa script sederhana ini, membuka operasi pipa, round-trip delay telah ditingkatkan cukup rendah.
without pipelining 1.185238 seconds with pipelining 0.250783 seconds
Seperti yang Anda lihat, membuka pipa, kita mempercepat efisiensi dengan 5 kali.