Rumah  >  Artikel  >  pangkalan data  >  Apakah spesifikasi Redis?

Apakah spesifikasi Redis?

王林
王林ke hadapan
2023-06-03 14:19:491232semak imbas

Redis mempunyai fungsi yang berkuasa dan jenis data yang kaya Tidak kira seberapa pantas sistem itu, ia tidak dapat menahan penyalahgunaan yang gila. Dengan melumpuhkan beberapa fungsi berisiko tinggi dan menggantung belenggu pembangunan, perniagaan boleh mempertimbangkan masalah dengan idea ringkas dan umum dan bukannya terikat kepada pelaksanaan tertentu.

Redis akan mempunyai strategi kegigihan dan strategi pengusiran yang berbeza berdasarkan penggunaan yang berbeza Oleh itu, sebelum menggunakan dan memohon gugusan Redis, sila jelaskan sama ada ia digunakan untuk caching atau penyimpanan. Kluster Redis mempunyai dua mod: tuan-hamba dan Kluster, kedua-duanya mempunyai kelebihan dan kekurangan mereka sendiri. Spesifikasi berikut tidak membezakan antara mod kluster Kami menerangkannya dari segi senario penggunaan dan sekatan operasi.

Spesifikasi penggunaan

Pembezaan data panas dan sejuk

Walaupun redis menyokong kegigihan, menyimpan semua data dalam redis adalah sangat mahal. Adalah disyorkan untuk memuatkan data panas (seperti data dengan QPS melebihi 5k) ke dalam redis. Data frekuensi rendah boleh disimpan dalam Mysql, ElasticSearch中.

Pengasingan data perniagaan

Jangan letak semua perkhidmatan data yang tidak berkaitan menjadi satu Redis. Di satu pihak, ia mengelakkan kesan perniagaan bersama, sebaliknya, ia mengelakkan pengembangan satu contoh, dan boleh mengurangkan kesan dan pulih dengan cepat sekiranya berlaku kegagalan.

Had saiz mesej

Memandangkan Redis ialah perkhidmatan satu benang, mesej besar akan menyekat dan memperlahankan operasi lain. Amalan yang baik untuk mengekalkan kandungan mesej di bawah 1KB. Rekod tunggal melebihi 50KB adalah dilarang sama sekali. Mesej yang terlalu besar juga akan menyebabkan penggunaan lebar jalur rangkaian dan masalah IO yang tinggi apabila berterusan ke cakera.

Hadkan bilangan sambungan

Penciptaan dan pemusnahan sambungan yang kerap akan membazirkan banyak sumber sistem, dan dalam kes yang melampau akan menyebabkan hos ranap. Sila pastikan anda menggunakan Redis konfigurasi kolam sambungan pelanggan yang betul.

Masa Tamat Set Kunci Cache

Untuk digunakan sebagai cache Key, masa tamat tempoh mesti ditetapkan. Lebih lama masa tamat tempoh, lebih baik Sila tetapkan mengikut sifat perniagaan anda. Ambil perhatian bahawa beberapa unit masa kegagalan adalah saat dan ada yang milisaat Ramai pelajar mungkin mudah membuat kesilapan jika mereka tidak memberi perhatian.

Cache tidak boleh mempunyai keadaan perantaraan

Cache hendaklah digunakan hanya untuk caching Logik perniagaan tidak boleh berubah selepas dialih keluar, dan ia tidak boleh dipotong ke dalam perniagaan. Pertama, ketersediaan cache yang tinggi akan menjejaskan perniagaan, kedua, gandingan yang mendalam akan mempunyai kesan yang tidak dapat diramalkan, ia akan mempunyai kesan kulit pada baris penyelenggaraan.

Kaedah pengembangan pilihan ialah cincang pelanggan

Lupakan tentang aplikasi kecil

Sebagai saturedis Kluster tidak dapat menyampaikan data anda, jangan' t risau Kembangkan kluster redis anda (termasuk M/S dan Kluster Lebih besar kluster, lebih teruk prestasi dalam penyegerakan dan ketekunan. Utamakan menggunakan klien hash untuk pemisahan kluster. Contohnya: 10 gugusan dibahagikan mengikut ID pengguna, dan pengguna yang nombor terakhirnya ialah 0 jatuh ke dalam gugusan pertama.

Sekatan Operasi

Dilarang sama sekali menggunakan Kekunci

Keys Kecekapan arahan sangat tidak cekap dan tergolong dalam operasi O(N), yang akan menyekat normal lain perintah. Pada cluster, ia akan Ia adalah operasi yang memudaratkan. Penggunaan adalah dilarang sama sekali, DBA hendaklah rename melumpuhkan arahan ini daripada sumber.

Adalah dilarang sama sekali menggunakan perintah Flush

flush, yang akan mengosongkan semua data dan merupakan operasi berisiko tinggi. Penggunaan adalah dilarang sama sekali, DBA hendaklah rename arahan ini, dilumpuhkan daripada sumber, hanya DBA boleh dikendalikan.

Dilarang sama sekali menggunakannya sebagai baris gilir mesej

Jika tiada keperluan yang sangat istimewa, dilarang sama sekali menggunakan Redis sebagai baris gilir mesej. Redis Apabila digunakan sebagai baris gilir mesej, pelbagai masalah akan timbul dari segi kapasiti, rangkaian, kecekapan dan kefungsian. Jika anda memerlukan baris gilir mesej, anda boleh menggunakan Kafka high-throughput atau high-reliability RocketMQ.

Operasi kelompok tanpa menetapkan julat adalah dilarang sama sekali

redis Pertanyaan yang begitu cepat dan perlahan, kecuali kelewatan rangkaian, tergolong dalam fungsi operasi kelompok ini. Kebanyakan masalah dalam talian disebabkan oleh fungsi ini.

1. [zset] Dilarang sama sekali untuk melakukan berbilang operasi pada zset seperti

ZRANGE, ZRANGEBYSCORE dan fungsi lain yang beroperasi ZSET adalah dilarang sama sekali gunakan ZRANGE myzset 0 -1 dsb. Operasi tanpa menetapkan skop. Sila nyatakan julat, seperti ZRANGE myzset 0 100. Jika anda tidak pasti tentang panjangnya, anda boleh menggunakan ZCARD untuk menentukan panjang

2 [hash] Dilarang sama sekali menggunakan HGETALL pada kekunci volum data yang besar 🎜> akan mengambil semua data yang berkaitan dengan
Jika bilangan item data terlalu besar, ia juga akan menyebabkan kesesakan. Jika anda tidak pasti tentang panjangnya, anda boleh menggunakan

untuk menentukan panjang terlebih dahulu HGETALLHASH3 [kunci] Operasi HLEN operasi mgt bagi kelompok Redis Cluster

akan pergi ke setiap serpihan Berbanding dengan seni bina
tradisional, prestasi pengagregatan data akan turun banyak. Sila lakukan ujian tekanan dan penilaian terlebih dahulu

Redis Cluster 4. [Lain-lain] Ia adalah. dilarang sama sekali menggunakan beberapa operasi pengagregatan seperti sunion, sinter, sdiff dll. MGETM/SLumpuhkan fungsi pilih

digunakan untuk menukar

Untuk pengguna, di sinilah masalah boleh berlaku dengan mudah. ​​Mod

tidak menyokong berbilang

Dan tiada keuntungan, dilumpuhkan. select

Lumpuhkan urus niaga

redis Ia sudah sangat pantas, jika tiada keperluan yang serius, adalah disyorkan untuk menangkap pengecualian dan tidak menggunakan fungsi transaksi.

Lumpuhkan sambungan skrip lua

lua Walaupun skrip boleh melakukan banyak perkara yang kelihatan sangat cool, ia adalah seperti SQL prosedur tersimpan, yang akan memperkenalkan prestasi dan beberapa Sukar untuk mengekalkan masalah, kurang upaya.

Lumpuhkan fungsi monitor jangka panjang

monitor dengan cepat boleh melihat aliran data yang sedang dilaksanakan oleh redis, tetapi berhati-hati, jika perintah monitor disekat untuk tempoh yang lama masa dalam tempoh puncak, ia akan menjejaskan prestasi redis dengan serius. Perintah ini tidak dilarang digunakan, tetapi penjagaan khusus mesti diambil semasa menggunakannya.

Spesifikasi utama

Redis dan Key mesti diseragamkan supaya apabila masalah dihadapi, ia boleh dikesan dengan mudah. Redis tergolong dalam pangkalan data scheme tanpa KV, jadi kami bergantung pada konvensyen untuk mewujudkan semantik schemenya. Faedahnya:

  1. Keupayaan untuk membersihkan data berdasarkan jenis kunci tertentu

  2. Keupayaan untuk mengemas kini data berdasarkan jenis kunci tertentu

  3. Dapat memahami pemilikan dan senario aplikasi jenis kunci tertentu

  4. Bersedia untuk penyatuan dan platformisasi, dan kurangkan perubahan teknikal

Secara amnya, sebuah key perlu mempunyai dimensi berikut: perniagaan, penggunaan kunci, pembolehubah, dll. Setiap dimensi dipisahkan oleh: Berikut ialah contoh beberapa kunci:

jantina pengguna:seks Pengguna 10002232

pemeringkatan komen pengguna msg:achi 201712

Atas ialah kandungan terperinci Apakah spesifikasi Redis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam