Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Redis adalah utas tunggal. Lalu mengapa saya harus menggunakan selada?

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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Butuh bantuan untuk membuat konsep di Redis/NoSQL

  2. Tidak dapat terhubung ke server Redis menggunakan Penyedia Status Sesi ASP.NET

  3. Cara Mengganti Nama Banyak Kunci di Redis

  4. Cara mendapatkan DIFF pada set yang diurutkan

  5. Redis Vue Desktop