Redis ialah sumber terbuka (berlesen BSD), pelayan struktur data dalam memori yang boleh digunakan sebagai pangkalan data, cache dan broker baris gilir mesej. Ia menyokong string, jadual hash, list , tempah Koleksi , Bitmap , hyperloglogs dan jenis data lain. Replikasi terbina dalam, Skrip Lua, pengusiran LRU, urus niaga dan tahap fungsi ketekunan cakera yang berbeza, sambil menyediakan ketersediaan tinggi melalui Redis Sentinel dan automatik Redis Kluster . Seberapa pantas 有Redis
Paksi mendatar ialah bilangan sambungan, dan paksi menegak ialah QPS. Kami melihat data rasmi dan mendapati bahawa ia adalah benar-benar pantas; Kemudian saya menyemak beberapa maklumat di halaman web, dan keadaan umum adalah seperti berikut: Ia sepenuhnya berdasarkan memori, dan kebanyakan permintaan adalah operasi memori tulen, yang sangat pantas. Data disimpan dalam ingatan, serupa dengan HashMap Kelebihan HashMap ialah kerumitan masa carian dan operasi ialah O(1); Struktur data dalam Redis direka khusus; menggunakan satu utas untuk mengelakkan suis konteks dan keadaan perlumbaan yang tidak perlu disebabkan oleh berbilang proses atau utas yang menggunakan CPU masalah kunci. Terdapat operasi kunci dan pelepasan, dan tiada penggunaan prestasi yang disebabkan oleh kemungkinan kebuntuan menggunakan model pemultipleksan I/O berbilang saluran, IO tidak menyekat menggunakan model asas yang berbeza, Kaedah pelaksanaan asas dan protokol aplikasi untuk komunikasi dengan pelanggan adalah berbeza secara langsung Redis membina mekanisme VM sendiri, kerana jika sistem umum memanggil fungsi sistem, ia akan membuang masa tertentu untuk bergerak dan meminta; Model pemultipleksan I/O berbilang saluran menggunakan pilih, tinjauan pendapat dan epoll untuk memantau acara I/O berbilang strim pada masa yang sama apabila melahu, urutan semasa akan disekat satu atau lebih strim Apabila terdapat acara I/O, ia bangun daripada keadaan menyekat, jadi program akan meninjau semua strim (epoll hanya meninjau strim yang benar-benar mengeluarkan acara tersebut), dan hanya memproses strim sedia mengikut urutan . Ini Pendekatan ini mengelakkan banyak operasi yang tidak berguna. Ringkasnya, sebenarnya terdapat tiga perkara: Gunakan model rangkaian epoll dan gunakan satu urutan untuk memproses permintaan. Gunakan pelbagai struktur data berprestasi tinggi yang memenuhi keperluan anda. redis menggunakan operasi memori; dan ditulis dalam bahasa C. Siri artikel ini tidak menumpukan pada membincangkan model rangkaian epoll, tetapi terutamanya merekodkan prinsip pembelajaran struktur data redis. Beritahu kami sebab pemprosesan data redis sangat pantas. prinsip pelaksanaan redis redis prinsip pelaksanaan senarai redis prinsip pelaksanaan set redis🜎
Titik permulaan
Atas ialah kandungan terperinci rakaman nota redis-gambaran keseluruhan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!