Apakah kaunter yang diedarkan?
Dalam sistem teragih, berbilang nod perlu mengemas kini dan membaca keadaan biasa, dan pembilang ialah salah satu keadaan yang paling banyak digunakan. Dalam istilah awam, kaunter ialah pembolehubah yang nilainya dinaikkan atau dikurangkan sebanyak 1 setiap kali ia diakses Ia adalah penunjuk yang digunakan untuk menjejaki kemajuan sistem tertentu. Kaunter teragih merujuk kepada pengendalian dan pengurusan kaunter dalam persekitaran teragih.
Mengapa menggunakan Redis untuk melaksanakan kaunter teragih?
Dengan populariti pengkomputeran teragih, banyak isu terperinci dalam sistem teragih menjadi lebih ketara. Kaunter ialah pembolehubah mudah Walau bagaimanapun, dalam persekitaran teragih, kaunter perlu menyokong ciri seperti keselarasan tinggi, ketersediaan teragih, ketekunan data dan prestasi tinggi. Redis betul-betul boleh memenuhi keperluan ini dan juga sangat berskala dan fleksibel.
Redis ialah pangkalan data NoSQL sumber terbuka berprestasi tinggi yang digunakan secara meluas dalam caching, baris gilir mesej, kunci teragih dan medan lain. Redis menyokong pelbagai struktur data, yang paling biasa digunakan ialah String, dan String ialah jenis data yang diperlukan untuk melaksanakan pembilang. Selain menyokong konkurensi tinggi dan operasi atom, ia juga menyediakan mekanisme kegigihan yang kuat dan kaedah sharding yang fleksibel, dan ia boleh menyokong pelbagai seni bina yang diedarkan seperti replikasi tuan-hamba, mod sentinel dan mod kelompok.
Bagaimana untuk menggunakan Redis untuk melaksanakan kaunter teragih?
Redis menyediakan pelbagai perintah untuk mengendalikan jenis data String, termasuk perintah incr dan decr, yang boleh digunakan untuk meningkatkan dan menurunkan nilai pembilang masing-masing, dan dalam persekitaran berbilang benang atau berbilang proses, mereka Atomicity terjamin.
Dalam persekitaran yang diedarkan, untuk merealisasikan perkongsian dan pengurusan kaunter, kita perlu menggunakan pengelompokan, replikasi induk-hamba atau mod sentinel yang disediakan oleh Redis untuk membentuk berbilang nod Redis menjadi kluster perkhidmatan Redis, dan Shard untuk mencapai sistem kaunter berprestasi tinggi yang tersedia.
Berikut ialah pelaksanaan mudah:
Pertama, anda perlu mencipta gugusan Redis dan mengkonfigurasinya menjadi model serpihan . Kluster biasanya mengandungi berbilang contoh Redis, berjalan pada mesin yang berbeza. Setiap kejadian mempunyai memori bebas dan sumber CPU, dan bertanggungjawab untuk mengekalkan operasi baca dan tulis untuk sebahagian daripada data dalam kelompok. Kejadian ini perlu disambungkan melalui rangkaian untuk membentuk kluster perkhidmatan Redis maya.
Dalam kelompok Redis, setiap kejadian boleh mempunyai satu atau lebih nod hamba untuk melaksanakan tuan-hamba siap sedia panas atau tuan-hamba membaca dan tulis pemisahan. Nod induk bertanggungjawab untuk menerima sambungan pelanggan dan memproses permintaan mereka; nod hamba bertanggungjawab untuk menyegerakkan data daripada nod induk dan menyediakan perkhidmatan bacaan sandaran. Replikasi tuan-hamba boleh memastikan kebolehpercayaan dan ketekalan data dalam kelompok dan mengurangkan kesan satu titik kegagalan.
Dalam kelompok Redis, setiap kejadian boleh mempunyai berbilang ruang nama (iaitu berbilang pangkalan data), setiap satu bernama Ruang mengandungi berbilang kunci- pasangan nilai. Untuk kaunter, anda boleh menganggapnya sebagai pasangan nilai kunci tunggal di bawah ruang nama, dan kemudian gunakan perintah incr dan decr untuk beroperasi padanya.
Sebagai contoh, kita boleh menyimpan pasangan nilai kunci jenis String bernama "counter" dalam Redis dan menetapkan nilai awalnya kepada 0. Apabila anda perlu menambah 1 padanya, anda hanya perlu memanggil arahan incr, yang secara automatik akan menambah 1 pada nilai dalam pasangan nilai kunci dan mengembalikan hasilnya. Begitu juga, jika anda perlu mengurangkannya sebanyak 1, anda boleh memanggil arahan decr. Operasi ini adalah atom, jadi kaunter dijamin betul dan disegerakkan tidak kira berapa banyak benang atau pelanggan mengaksesnya secara serentak.
Untuk mengelakkan kaunter meningkat atau menurun selama-lamanya disebabkan aktiviti tidak sah dan sebab lain, kami boleh mengosongkan kaunter secara automatik dengan menetapkan masa tamat tempoh. Dalam Redis, anda boleh menggunakan perintah tamat tempoh untuk menetapkan masa kemandirian pasangan nilai kunci kepada tempoh masa tertentu Apabila pasangan nilai kunci melebihi masa kemandiriannya, Redis akan memadamkannya secara automatik.
Sebagai contoh, kita boleh menetapkan masa tamat tempoh kaunter kepada 1 jam, supaya walaupun kaunter terus meningkat atau berkurangan, ia hanya akan tamat secara automatik selepas 1 jam, sekali gus memastikan keberkesanan dan keselamatan kaunter.
Kesimpulan
Kaunter teragih ialah elemen asas dalam sistem teragih kerana ia boleh menjejak dan merekod penunjuk kemajuan sistem teragih, dan boleh digunakan untuk melaksanakan satu siri aplikasi lanjutan, seperti Kunci teragih, penskalaan automatik, pencetus peristiwa, dsb. Menggunakan Redis untuk melaksanakan kaunter teragih, sama ada mesin tunggal atau berbilang mesin, benang tunggal atau berbilang benang, boleh mencapai ketersediaan tinggi, prestasi tinggi, konsistensi tinggi dan keselamatan tinggi.
Atas ialah kandungan terperinci Melaksanakan kaunter teragih menggunakan Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!