वास्तव में यह केवल एक प्रभाव है कि डिफ़ॉल्ट रूप से आप वास्तविक कमांड निष्पादन समय से अधिक I/O मापते हैं। यदि आप बेंचमार्क में पाइपलाइनिंग को सक्षम करना शुरू करते हैं, तो यह वास्तविक कमांड प्रदर्शन का थोड़ा अधिक माप है, और संख्याएं बदल जाएंगी:
$ redis-benchmark -q -n 1000000 -P 32 set foo bar
set foo bar: 338964.03
$ redis-benchmark -q -n 1000000 -P 32 get foo
get foo: 432713.09 requests per second
अब GET तेज है :-)
हमें अपने बेंचमार्क दस्तावेज़ पृष्ठ में पाइपलाइनिंग को शामिल करना चाहिए।
संपादित करें: यह यहाँ और भी स्पष्ट है:
redis 127.0.0.1:6379> info commandstats
# Commandstats
cmdstat_get:calls=1001568,usec=221845,usec_per_call=0.22
cmdstat_set:calls=831104,usec=498235,usec_per_call=0.60
यह आदेश I/O के लिए लेखांकन के बिना आंतरिक रूप से अनुरोध को पूरा करने के लिए CPU समय प्रदान करता है। SET संसाधित होने में तीन गुना धीमा है।