Rumah >pangkalan data >Redis >Apakah spesifikasi Redis?
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.
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中
.
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.
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.
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.
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 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.
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.
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.
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.
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
.
redis
Pertanyaan yang begitu cepat dan perlahan, kecuali kelewatan rangkaian, tergolong dalam fungsi operasi kelompok ini. Kebanyakan masalah dalam talian disebabkan oleh fungsi ini.
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
untuk menentukan panjang terlebih dahulu HGETALL
HASH
3 [kunci] Operasi HLEN
operasi mgt bagi kelompok Redis Cluster
Redis Cluster
4. [Lain-lain] Ia adalah. dilarang sama sekali menggunakan beberapa operasi pengagregatan seperti sunion, sinter, sdiff dll. MGET
M/S
Lumpuhkan fungsi pilih
Dan tiada keuntungan, dilumpuhkan. select
redis
Ia sudah sangat pantas, jika tiada keperluan yang serius, adalah disyorkan untuk menangkap pengecualian dan tidak menggunakan fungsi transaksi.
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.
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.
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 scheme
nya. Faedahnya:
Keupayaan untuk membersihkan data berdasarkan jenis kunci tertentu
Keupayaan untuk mengemas kini data berdasarkan jenis kunci tertentu
Dapat memahami pemilikan dan senario aplikasi jenis kunci tertentu
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!