Karena Anda menghabiskan waktu tidak hanya saat Redis menjalankan perintah, tetapi juga mentransfer data (mengirim perintah, menerima hasil). Dalam mode utas tunggal saat Anda mentransfer, Redis tidak berfungsi. Saat Redis berfungsi, tidak ada transfer yang terjadi. Beberapa koneksi atau satu koneksi pipeline ada di sini untuk membantu Anda memenuhi siklus bandwidth dan CPU.
Dan luttece bukan hanya tentang kecepatan. Ini juga membantu Anda mengatur kode lebih baik dengan API asinkron dan reaktif.
Kembali ke topik kinerja, berikut adalah tolok ukur sederhana untuk mendapatkan pemahaman umum tentang dampak threading dan pooling. Perhatikan, bahwa meskipun penggabungan sedikit lebih lambat (Anda menghabiskan beberapa waktu untuk operasi kumpulan), ini memungkinkan Anda untuk mengisolasi tindakan (sehingga kesalahan tidak memengaruhi utas lainnya) dan menggunakan MULTI
dan memblokir perintah.
Inilah hasil saya (sistem lokal memiliki 4 inti, CPU sistem jarak jauh sekitar 2 kali lebih lambat):
Utas=1
Benchmark (address) Mode Cnt Score Error Units
LettuceThreads.pooled socket thrpt 25 35389.995 ± 1325.198 ops/s
LettuceThreads.pooled localhost thrpt 25 32075.870 ± 416.220 ops/s
LettuceThreads.pooled remote thrpt 25 3883.193 ± 67.622 ops/s
LettuceThreads.shared socket thrpt 25 39419.772 ± 1966.023 ops/s
LettuceThreads.shared localhost thrpt 25 34293.245 ± 1737.349 ops/s
LettuceThreads.shared remote thrpt 25 3919.251 ± 49.897 ops/s
Utas=2
Benchmark (address) Mode Cnt Score Error Units
LettuceThreads.pooled socket thrpt 25 56938.187 ± 2727.772 ops/s
LettuceThreads.pooled localhost thrpt 25 49420.748 ± 2091.631 ops/s
LettuceThreads.pooled remote thrpt 25 7791.706 ± 133.507 ops/s
LettuceThreads.shared socket thrpt 25 81195.900 ± 1593.424 ops/s
LettuceThreads.shared localhost thrpt 25 78404.688 ± 3878.044 ops/s
LettuceThreads.shared remote thrpt 25 3992.023 ± 39.092 ops/s
Utas=4
Benchmark (address) Mode Cnt Score Error Units
LettuceThreads.pooled socket thrpt 25 87345.126 ± 8149.009 ops/s
LettuceThreads.pooled localhost thrpt 25 75003.031 ± 4481.289 ops/s
LettuceThreads.pooled remote thrpt 25 15807.410 ± 225.376 ops/s
LettuceThreads.shared socket thrpt 25 169112.489 ± 3749.897 ops/s
LettuceThreads.shared localhost thrpt 25 115464.778 ± 5099.728 ops/s
LettuceThreads.shared remote thrpt 25 7952.492 ± 133.521 ops/s
Anda dapat melihat di sini bahwa kinerja meningkat dengan sangat baik dengan jumlah utas, sehingga selada tidak sia-sia.