Latest web development tutorials

رديس خط أنابيب تقنية

ويستند رديس على العميل - نموذج الخادم وطلب / استجابة خدمات بروتوكول TCP. وهذا يعني أن الطلب سوف عادة اتبع الخطوات التالية:

  • يرسل العميل الاستعلام إلى الخادم، ويستمع عوائد المقبس، وعادة في عرقلة الوضع، في انتظار استجابة الملقم.
  • أوامر معالجة الملقم وإرجاع النتائج إلى العميل.

رديس خط أنابيب تقنية

رديس تكنولوجيا خط أنابيب لا يمكن أن تستجيب في الوقت الخادم، يمكن للعميل تستمر لتقوم بإرسال طلب إلى الخادم، وأخيرا في كل مرة لقراءة استجابة الملقم.

أمثلة

انظر خط أنابيب رديس، فقط تحتاج إلى تشغيل مثيل رديس وأدخل الأمر التالي:

$(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

باستخدام المثال لدينا خدمة رديس الأمرPING المذكورة أعلاه هو متاح، ثم أنشأنا رديس قيمة w3bigkey، ومن ثم نحصل على w3bigkey قيمة وجعل الزائر زيادة 3 مرات.

في النتائج التي تم إرجاعها، يمكننا أن نرى هذه الأوامر في المقدمة مرة واحدة لرديس الخدمة، وفي نهاية المطاف في كل مرة لقراءة استجابة الخادم


ميزة خط أنابيب تقنية

أهم ميزة من التكنولوجيا لتحسين خدمة رديس أداء خط أنابيب.

بعض بيانات الاختبار

في الاختبار التالي، سوف نستخدم العميل رديس روبي التي تدعم الخصائص التقنية خط أنابيب، والتكنولوجيا أنبوب الاختبار إلى تعزيز تأثير سرعة.

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 
}

من LAN في نظام التشغيل Mac OS X نظام لأداء وتشير البيانات المذكورة أعلاه أن هذا السيناريو بسيط، فتح تشغيل خط أنابيب، وقد تحسنت التأخير ذهابا وإيابا منخفضة جدا.

without pipelining 1.185238 seconds 
with pipelining 0.250783 seconds

كما ترون، فتح خط أنابيب، ونحن تسريع كفاءة بنسبة 5 مرات.