1. Pembinaan manual
1. Sediakan nod
CentOS7 dan pasang Redis
Bilangan nod mestilah sekurang-kurangnya 6 untuk memastikan Kluster ketersediaan lengkap dan tinggi
(1) Struktur direktori
cluster ├── 9001 │ ├── data │ │ ├── appendonly.aof │ │ └── nodes-9001.conf │ ├── redis-9001.conf │ └── redis-9001.log ├── 9002 │ ├── data │ │ ├── appendonly.aof │ │ └── nodes-9002.conf │ ├── redis-9002.conf │ └── redis-9002.log ...
(2) Sediakan fail konfigurasi
cd cluster mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data cp ../redis-6.0.9/redis.conf 9001/redis-9001.conf vi 9001/redis-9001.conf port 9001 daemonize yes bind 192.168.11.40 dir /root/cluster/9001/data/ pidfile /var/run/redis_9001.pid cluster-enabled yes # 集群模式运行 cluster-config-file nodes-9001.conf cluster-node-timeout 15000 # appendonly yes logfile "/root/cluster/9001/redis-9001.log"
Salin & Ganti: :%s/9001/9002/g
( 3) Mula Selepas perkhidmatan
/usr/local/redis/bin/redis-server /root/cluster/9001/redis-9001.conf ... tail 9001/redis-9001.log kill `cat /var/run/redis_9001.pid`
dimulakan, fail konfigurasi kelompok nodes-9001.conf
akan dibuat secara automatik dalam direktori data. Apabila maklumat nod dalam kluster berubah, nod akan secara automatik menyimpan status kluster ke fail konfigurasi ini Adalah lebih baik untuk tidak mengubah suai secara manual. Jika fail konfigurasi kluster wujud semasa permulaan, nod akan menggunakan kandungan fail konfigurasi untuk memulakan maklumat kluster
$ cat 9001/data/nodes-9001.conf 8ccdb0963411ebd05ce21952bdd4b7597825afdc :0@0 myself,master - 0 0 0 connected vars currentEpoch 0 lastVoteEpoch 0 $ /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 192.168.11.40:9001> cluster nodes 8ccdb0963411ebd05ce21952bdd4b7597825afdc :9001@19001 myself,master - 0 0 0 connected
ID Nod: rentetan heksadesimal 40 digit yang digunakan untuk mengenal pasti nod secara unik dalam kelompok. ID nod hanya dibuat sekali, manakala ID yang sedang berjalan akan berubah setiap kali ia dimulakan semula
2. Jabat tangan nod
Jabatan tangan nod Sekumpulan nod yang berjalan dalam mod kelompok berkomunikasi antara satu sama lain melalui protokol Gossip untuk berkomunikasi antara satu sama lain Perception
$ /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 192.168.11.40:9001> cluster meet 192.168.11.40 9002 OK 192.168.11.40:9001> cluster nodes 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 0 0 connected 5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620703357871 1 connected
cluster meet ialah perintah tak segerak, yang digunakan untuk nod bertukar maklumat data status antara satu sama lain Ia kembali serta-merta selepas pelaksanaan dan berfungsi komunikasi jabat tangan dengan nod sasaran secara dalaman:
Node 9001 mencipta objek maklumat nod 9002 secara setempat dan menghantar mesej bertemu
-
Selepas menerima pertemuan mesej, nod 9002 menyimpan maklumat nod 9001 dan membalas mesej pong
Selepas itu, nod 9001 dan 9002 berkomunikasi antara satu sama lain secara kerap melalui mesej ping/pong
Dalam kluster, mana-mana nod boleh melaksanakan perintah bertemu kluster untuk menyertai nod baharu Status jabat tangan akan disebarkan dalam kluster melalui mesej: nod lain akan menemui nod baharu secara automatik dan memulakan jabat tangan. proses
Kluster tidak boleh berfungsi seperti biasa selepas nod mewujudkan jabat tangan Pada masa ini, kluster berada dalam statusLuar Talian, semua bacaan dan penulisan data adalah dilarang. Oleh kerana slot tidak diberikan kepada nod, kluster tidak dapat melengkapkan pemetaan slot ke nod
192.168.11.40:9001> set hello world (error) CLUSTERDOWN Hash slot not served 192.168.11.40:9001> cluster info cluster_state:fail cluster_slots_assigned:0 cluster_slots_ok:0 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:0 ...3 Peruntukkan slot Kluster Redis memetakan semua data ke slot
16384. tengah. Hanya apabila slot semua diperuntukkan kepada nod, gugusan memasuki keadaan dalam talian
Slot tugasan:/usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9001 cluster addslots {0..5461} /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9002 cluster addslots {5462..10922} /usr/local/redis/bin/redis-cli -h 192.168.11.40 -p 9003 cluster addslots {10923..16383}Lihat maklumat kelompok:
192.168.11.40:9001> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 ... 192.168.11.40:9001> cluster nodes cebb7ed63d469748d4015ede6b4a0f5ff59c9322 192.168.11.40:9006@19006 master - 0 1620704406746 0 connected 1b7785f80c4712c6ba4abd71cc93027fa85a02f8 192.168.11.40:9005@19005 master - 0 1620704406000 4 connected 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 1620704404000 2 connected 0-5461 9408059de8b2dd712f0a9381a3b7aad561aef206 192.168.11.40:9004@19004 master - 0 1620704407753 5 connected 85ceb9826e8aa003169c46fb4ba115c72002d4f9 192.168.11.40:9003@19003 master - 0 1620704407000 3 connected 10923-16383 5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620704408763 1 connected 5462-10922Setiap satu bertanggungjawab Nod yang mengendalikan slot harus mempunyai nod hamba untuk memastikan ia boleh gagal secara automatik apabila ia gagal Nod yang dimulakan buat kali pertama dan nod yang diberikan slot adalah kedua-duanya induk nod. Nod hamba bertanggungjawab untuk menyalin maklumat slot nod induk dan data Berkaitan
192.168.11.40:9004> cluster replicate 8ccdb0963411ebd05ce21952bdd4b7597825afdc OK 192.168.11.40:9005> cluster replicate 5786e3237c7fa413ed22465d15be721f95e72cfa OK 192.168.11.40:9006> cluster replicate 85ceb9826e8aa003169c46fb4ba115c72002d4f9 OK
192.168.11.40:9001> cluster nodes cebb7ed63d469748d4015ede6b4a0f5ff59c9322 192.168.11.40:9006@19006 slave 85ceb9826e8aa003169c46fb4ba115c72002d4f9 0 1620704825926 3 connected 1b7785f80c4712c6ba4abd71cc93027fa85a02f8 192.168.11.40:9005@19005 slave 5786e3237c7fa413ed22465d15be721f95e72cfa 0 1620704825000 1 connected 8ccdb0963411ebd05ce21952bdd4b7597825afdc 192.168.11.40:9001@19001 myself,master - 0 1620704824000 2 connected 0-5461 9408059de8b2dd712f0a9381a3b7aad561aef206 192.168.11.40:9004@19004 slave 8ccdb0963411ebd05ce21952bdd4b7597825afdc 0 1620704824921 2 connected 85ceb9826e8aa003169c46fb4ba115c72002d4f9 192.168.11.40:9003@19003 master - 0 1620704824000 3 connected 10923-16383 5786e3237c7fa413ed22465d15be721f95e72cfa 192.168.11.40:9002@19002 master - 0 1620704823914 1 connected 5462-109222. Gunakan redis-trib.rb untuk membina gugusan (lapuk)
[Gunakan redis-cli untuk membina kelompok selepas Redis5.0]
redis-trib.rb ialah Redisalat pengurusan kelompok yang dilaksanakan dalam Ruby. Perintah berkaitan kluster digunakan secara dalaman untuk membantu kami memudahkan operasi biasa dan operasi penyelenggaraan seperti penciptaan kluster, pemeriksaan, pemindahan slot dan pengimbangan
1 Persekitaran RubyPasang Rubywget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.gz tar -zxvf ruby-2.7.3.tar.gz cd ruby-2.7.3 ./configure --prefix=/usr/local/ruby make make install cd /usr/local/ruby cp bin/ruby /usr/local/bin cp bin/gem /usr/local/binPasang rubygem redis Dependency
wget http://rubygems.org/downloads/redis-4.2.5.gem gem install -l redis-4.2.5.gem gem list
Menghadapi masalah
$ gem install -l redis-4.2.5.gem ERROR: Loading command: install (LoadError) cannot load such file -- zlib ERROR: While executing gem ... (NoMethodError) undefined method `invoke_with_build_args' for nil:NilClass
Selesaikannya (sama seperti openssl)
yum -y install zlib-devel cd ruby-2.7.3/ext/zlib ruby ./extconf.rb make make install
Pasang redis-trib.rb
cp /{redis_home}/src/redis-trib.rb /usr/local/bin redis-trib.rb
# --replicas 1:指定集群中每个主节点配备几个从节点 redis-trib.rb create --replicas 1 192.168.11.40:9001 192.168.11.40:9002 192.168.11.40:9003 192.168.11.40:9004 192.168.11.40:9005 192.168.11.40:9006 # 集群完整性检查 redis-trib.rb check 192.168.11.40:9001. Buat kluster
redis-cli --cluster create 192.168.11.40:9001 192.168.11.40:9002 192.168.11.40:9003 192.168.11.40:9004 192.168.11.40:9005 192.168.11.40:9006 --cluster-replicas 1
- akan melengkapkan proses jabat tangan dan slot nod secara automatik
- akan mencuba yang terbaik untuk memastikan tuan dan hamba nod tidak diperuntukkan pada mesin yang sama
- Tertib senarai nod digunakan untuk menentukan peranan master-slave, pertama nod master dan kemudian nod slave
- Alamat nod mestilah nod yang tidak mengandungi sebarang slot/data, jika tidak Akan menolak untuk membuat gugusan
- 3 sekumpulan
Atas ialah kandungan terperinci Bagaimana untuk membina kluster Redis dalam CentOS7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Redis menyokong pelbagai struktur data, termasuk: 1. String, sesuai untuk menyimpan data nilai tunggal; 2. Senarai, sesuai untuk beratur dan susunan; 3. Tetapkan, digunakan untuk menyimpan data yang tidak duplikasi; 4. Diarahkan set, sesuai untuk senarai ranking dan beratur keutamaan; 5. Jadual hash, sesuai untuk menyimpan objek atau data berstruktur.

Kaunter Redis adalah satu mekanisme yang menggunakan penyimpanan pasangan nilai utama REDIS untuk melaksanakan operasi pengiraan, termasuk langkah-langkah berikut: mewujudkan kekunci kaunter, meningkatkan tuduhan, mengurangkan tuduhan, menetapkan semula, dan mendapatkan tuduhan. Kelebihan kaunter Redis termasuk kelajuan cepat, konkurensi tinggi, ketahanan dan kesederhanaan dan kemudahan penggunaan. Ia boleh digunakan dalam senario seperti pengiraan akses pengguna, penjejakan metrik masa nyata, skor permainan dan kedudukan, dan pengiraan pemprosesan pesanan.

Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.

Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Penggunaan ZSET dalam Redis Cluster: ZSET adalah koleksi yang diperintahkan yang mengaitkan unsur -unsur dengan skor. Strategi Sharding: a. Hash Sharding: Mengedarkan nilai hash mengikut kunci ZSET. b. Pelbagai Sharding: Bahagikan ke dalam julat mengikut skor elemen, dan tetapkan setiap julat kepada nod yang berbeza. Baca dan tulis operasi: a. Baca Operasi: Jika kekunci ZSET adalah milik nod semasa, ia akan diproses secara tempatan; Jika tidak, ia akan dialihkan ke shard yang sepadan. b. Tulis Operasi: Sentiasa diarahkan ke Shards memegang kekunci ZSET.

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Terdapat dua jenis strategi tamat tempoh data REDIS: Penghapusan berkala: Imbasan berkala untuk memadamkan kunci yang telah tamat tempoh, yang boleh ditetapkan melalui parameter-cap-cap-rempah yang telah tamat tempoh dan parameter kelewatan-cap-remove-time-time. Penghapusan Lazy: Periksa kekunci yang telah tamat tempoh hanya apabila kunci dibaca atau ditulis. Mereka boleh ditetapkan melalui parameter lazon-lazy-expire-expire-expire, lazy-lazy-user-del parameter.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Dreamweaver Mac版
Alat pembangunan web visual

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod