Sebenarnya ini hanya efek bahwa secara default Anda mengukur lebih banyak I/O daripada waktu eksekusi perintah yang sebenarnya. Jika Anda mulai mengaktifkan pipelining di benchmark, ini sedikit lebih merupakan ukuran kinerja perintah yang sebenarnya, dan angkanya akan berubah:
$ 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
Sekarang GET lebih cepat :-)
Kami harus menyertakan pipelining di halaman dokumen benchmark kami.
EDIT: Ini bahkan lebih jelas di sini:
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
Perintah ini menyediakan waktu CPU untuk melayani permintaan secara internal, tanpa memperhitungkan I/O. SET tiga kali lebih lambat untuk diproses.