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

Redis kinerja pada CPU multi-core

Saya telah melihat situs web redis, dan menemukan bahwa redis tidak dirancang untuk CPU multi-core. Pertanyaan saya, Mengapa demikian?

Ini adalah keputusan desain.

Redis adalah single-threaded dengan epoll/kqueue dan skala tanpa batas dalam hal konkurensi I/O. [email protected] (pencipta Redis)

Alasan memilih pendekatan berdasarkan peristiwa adalah sinkronisasi antara utas dikenakan biaya baik dalam perangkat lunak (kompleksitas kode) dan tingkat perangkat keras (pengalihan konteks). Selain itu, hambatan Redis biasanya adalah jaringan , bukan CPU. Di sisi lain, arsitektur single-threaded memiliki keuntungan sendiri (misalnya jaminan atom).

Oleh karena itu loop acara tampak seperti desain yang bagus untuk efisien &dapat diskalakan sistem seperti Redis.

Juga, jika ya, bagaimana kami dapat memanfaatkan 100% sumber daya CPU dengan redis pada CPU multi-inti.

Pendekatan Redis untuk menskalakan lebih dari beberapa inti adalah sharding , sebagian besar bersama dengan Twemproxy.

Namun jika karena alasan tertentu Anda masih ingin menggunakan pendekatan multi-utas, lihat Thredis tetapi pastikan Anda memahami implikasi dari apa yang dilakukan pembuatnya (misalnya, Anda tidak dapat menggunakannya sebagai master replikasi).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Perbedaan antara StackExchange.Redis dan ServiceStack.Redis

  2. Memcache vs Memori Java

  3. Redis zrevrangebyscore, pengurutan selain urutan leksikografis

  4. Konfigurasikan batas waktu Jedis

  5. Menghubungkan langsung ke Redis dengan javascript (sisi klien)?