CentOS 8'de Redis Çoğaltma (Küme Modu Devre Dışı Bırakılarak) Nasıl Kurulur - Bölüm 1


Redis (Uzak Sözlük Sunucusu) çok popüler ve yaygın olarak kullanılan açık kaynaklı, hızlı, dağıtılmış ve verimli bir bellek içi anahtar/değer veritabanı/veri yapısı sunucusudur.

Çok çeşitli kullanım durumları için onu etkili kılan zengin özellikler sunar: veritabanı, önbellek katmanı, mesaj aracısı veya kuyruk olarak; web uygulamalarında, sohbet ve mesajlaşma uygulamalarında, oyunlarda, gerçek zamanlı veri analizlerinde ve çok daha fazlasında uygulanabilir.

Esnek veri yapılarını, okuma performansını ölçeklendirmek ve veri kaybına karşı koruma sağlamak için ana-bağımlı eşzamansız çoğaltmayı, yazma performansını ölçeklendirmek için istemci tarafı parçalamayı, bellek içi verileri diske kompakt bir biçimde yazmak için iki kalıcılık biçimini, kümelemeyi ve bölümleme. Aynı zamanda Redis Sentinel, Lua komut dosyası oluşturma, işlemler ve çok daha fazlası aracılığıyla yüksek kullanılabilirliğe sahip dağıtım için otomatik yük devretme özelliğine de sahiptir.

SQL'siz veya ilişkisel olmayan bir veritabanı olan Redis, geleneksel veritabanı sistemlerine (MySQL/MariaDB, gibi) göre bazı performans avantajları sunar. PostgreSQL, vb.), çünkü tüm verileri bellekte bulunur veya depolanır, bu da bir uygulamanın kolayca erişebilmesini sağlarken, geleneksel veritabanlarının tüm verileri diske veya harici bir kaynağa yazması veya bunlardan okuması gerekir.

Redis, sık kullanılan veriler için her zaman bir veritabanını sorgulamak yerine önbelleğe alınmış verilerin (bir uygulamanın ana bellek alanında depolanan) yeniden kullanılmasına olanak tanıyan, önbelleğe alma için giderek yaygınlaşan bir seçenek haline geldi. Bu nedenle, sonuçta uygulama performansını artırmak için RDMS'nin (İlişkisel Veritabanı Yönetim Sistemleri) harika bir arkadaşıdır.

Bu üç bölümlük Redis eğitim serisinde, Redis'in çoğaltma, Redis Sentinel ve kullanarak yüksek kullanılabilirlik gibi temel özelliklerinden bazılarının nasıl kurulacağını ve kullanılacağını ele alacağız. >Redis Cluster'da makaleler şunlardır:

Bu kılavuz, CentOS 8 Linux'ta Redis Çoğaltma'nın (Küme Modu Devre Dışı ile) nasıl kurulacağını ve Redis'in nasıl kurulacağını, ana sunucunun nasıl yapılandırılacağını gösterir. ve kopyaları seçin ve çoğaltmayı test edin.

Önemli: Küme modunun devre dışı olduğu bir Redis Kümesi (yani Çoğaltma Kümesi) tek bir düğüm grubuna ( örneğin bir ana ve bir veya iki kopya) burada küme modu etkinleştirilmiş bir Redis kümesi, iki veya daha fazla düğüm grubundan oluşabilir (örneğin, her biri bir veya iki bağımlıya sahip üç ana düğüm).

Önkoşullar:

  1. CentOS 8 Kurulumlu Sunucular

Test Ortamı Kurulumu

Redis Master Server: 10.42.0.247
Redis Replica1/Slave1: 10.42.0.21
Redis Replica2/Slave2: 10.42.0.34

Yukarıdaki kurulumla (tek bir okuma/yazma birincil/ana düğümü ve 2 salt okunur kopya düğümüne sahip), her düğümdeki kümenin tüm verilerini içeren tek bir düğüm grubumuz var. Bir köle, bir ana bilgisayara bağlandığında, tüm veritabanının ilk kopyasını alır ve daha önce köle üzerinde bulunan tüm veriler atılır.

Ayrıca, bir istemci yalnızca ana sunucuya yazabilir ancak kümedeki herhangi bir düğümden okuyabilir. Ve ana cihaz üzerinde yazma işlemleri gerçekleştirilirken, bunlar, yedek veri kümelerinin gerçek zamanlı olarak güncellenmesi için bağlı tüm yardımcı cihazlara yayılır.

Adım 1: Redis'i CentOS 8'e Yükleme

1. Başlangıç olarak, SSH yoluyla tüm CentOS 8 düğümlerinde oturum açın, ardından Redis paketini tüm düğümlere (ana ve kopyalar) yükleyin. ) gösterildiği gibi DNF paket yöneticisini kullanarak.


dnf install @redis

2. Redis paketi kurulumu tamamlandıktan sonra Redis hizmetini başlatın, her sistem açılışında otomatik olarak başlamasını etkinleştirin ve çalışıp çalışmadığını kontrol edin. aşağıdaki gibi çalışır durumda.

systemctl start redis
systemctl enable redis
systemctl status redis

3. Aşağıdaki gibi ss komutunu kullanarak dinleme bağlantı noktalarını kontrol ederek Redis sunucusunun çalışır durumda olduğunu da doğrulayabilirsiniz.

ss -ltpn | grep redis-server

Adım 2: Redis Ana Sunucusunu Yapılandırma

4. Redis, kendi kendine belgelenen bir örnek yapılandırma dosyası olan /etc/redis.conf yapılandırma dosyası kullanılarak yapılandırılır. Öncelikle orijinal dosyanın bir yedeğini oluşturun, ardından seçtiğiniz komut satırı düzenleyicinizi kullanarak düzenlemek için açın.

cp /etc/redis.conf /etc/redis.conf.org
vi /etc/redis.conf

5. Varsayılan olarak, bir Redis örneği, bağlama yönergesini kullanarak geri döngü arayüzündeki bağlantıları dinleyecek ve kabul edecek şekilde yapılandırılmıştır. Kopyalarla iletişim kurmak için yöneticinin IPv4 geridöngü adresini ve LAN IP adresini (ör. 10.42.0.247) dinleyecek şekilde yapılandırılması gerekir.

bind 127.0.0.1 10.42.0.247

6. Ardından, kopyalarla iletişime izin verildiği gibi, korumalı mod parametresini no olarak ayarlayın.

protected-mode no

Ayrıca Redis, port yönergesi kullanılarak ayarlanan 6379 bağlantı noktasını dinler. Bu, uygulama API'leri veya CLI istemcileriyle iletişim kurmak için kullanılan veri bağlantı noktasıdır.

port 6379

7. İsteğe bağlı olarak ana kopya iletişimlerini güvence altına almak için, istemcilerin/kopyaların Herhangi bir komutu çalıştırmadan veya bir çoğaltma senkronizasyon işlemini başlatmadan önce bir kimlik doğrulama parolası verin; aksi takdirde ana sunucu, istemci/kopyalama isteğini reddeder (güvenli bir parola ayarlamayı unutmayın).

Nasıl çalıştığını göstermek için aşağıdaki seçeneği gösteri amacıyla kullanacağız.

requirepass  Securep@55Here

8. Ayrıca Redis günlükleri /var/log/redis/redis.log dosyasında saklanır; bu, logfile yönergesi kullanılarak ayarlanır ve varsayılan sunucu ayrıntı düzeyi loglevel parametresi kullanılarak tanımlanan notice'dir.

loglevel  notice
logfile  /var/log/redis/redis.log

9. Systemd, CentOS 8'de varsayılan sistem ve hizmet yöneticisi olduğundan, Redis'i etkileşim kuracak şekilde yapılandırabilirsiniz. supervised parametresini systemd olarak ayarlayarak systemd denetim ağacını yönetin.

supervised systemd

10. Gerekli tüm yapılandırmaları yaptıktan sonra dosyayı kaydedin ve kapatın. Ardından yeni değişiklikleri uygulamak için Redis hizmetini yeniden başlatın.

systemctl daemon-reload
systemctl restart redis

11. Redis sunucusuna erişmek için redis-cli'yi (redis-sunucusuna yönelik bir komut satırı arayüzü) kullanmamız gerekir. Varsayılan olarak localhost üzerindeki sunucuya bağlanır (127.0.0.1 bağlantı noktası 6379'da). Sunucu, istemcilerden parola kullanılarak korunduğundan, kimlik doğrulamadan önce komut çalıştırmanın başarısız olacağını unutmayın.

Aşağıdaki ekran görüntüsünde gösterildiği gibi kimlik doğrulama şifresini sağlamak için auth komutunu kullanın.

redis-cli
127.0.0.1:6379> client list
127.0.0.1:6379> AUTH Securep@55Here
127.0.0.1:6379> client list

12. Bir kopyaya bağlanmak için (sonraki bölümde açıklandığı şekilde yapılandırdıktan sonra), -h ve -p'yi kullanın. seçeneklerini kullanarak sırasıyla kopya IP adresini/ana bilgisayar adını ve bağlantı noktasını belirtin (6379 bağlantı noktasının kopyanın güvenlik duvarında açık olması gerekmez).

redis-cli -h 10.42.0.21 -p 6379

13. Ardından, ana sunucuya gelen bağlantılara izin vermek için güvenlik duvarındaki Redis sunucusu veri bağlantı noktasını açın ve ardından gösterildiği gibi güvenlik duvarı kurallarını güvenlik duvarı-cmd komutunu kullanarak yeniden yükleyin.

firewall-cmd --zone=public --permanent --add-port=6379/tcp 
firewall-cmd --reload

3. Adım: Redis Replika/Bağımlı Sunucularını Yapılandırma

14. Bir Redis örneğini hızlı bir şekilde anında kopya olarak ayarlamak için redis-cli yardımcı programını kullanın ve REPLICAOF'u çağırın. komutunu gösterildiği gibi kullanın.

redis-cli replicaof 10.42.0.247 6379
OR
redis-cli
127.0.0.1:6379> REPLICAOF 10.42.0.247 6379

15. Çoğaltma bağlantısını kalıcı hale getirmek için yapılandırma dosyasında aşağıdaki değişiklikleri yapmanız gerekir. Orijinal dosyayı yedekleyerek başlayın, ardından düzenlemek için açın.

cp /etc/redis.conf /etc/redis.conf.org
vi /etc/redis.conf

16. İstemcilerin veri okumak üzere replikaya bağlanmasına izin vermek için replika IP adresini bağlama yönergesine ekleyin.

replica1
bind 127.0.0.1 10.42.0.21

replica2
bind 127.0.0.1 10.42.0.34

Redis Örneğini Replika Olarak Ayarlama

17. Bir Redis örneğini kopya olarak yapılandırmak için replicaof parametresini kullanın ve ana düğümün IP adresini (veya ana bilgisayar adını) ve bağlantı noktasını şu şekilde ayarlayın: değerler.

replicaof 10.42.0.247 6379

Kopyayı Ana Sunucuda Kimlik Doğrulayacak Şekilde Ayarlama

18. Daha sonra, ana örneğimiz bir parola kullanılarak korunduğu için, masterauth'u kullanarak ana örnekte kimlik doğrulamasını sağlamak için kopya yapılandırmasında parolayı ayarlamamız gerekir. parametre.

masterauth Securep@55Here

19. Ayrıca, bir kopyanın ana sunucuyla bağlantısı kesildiğinde veya çoğaltma devam ederken, kopya istemci isteklerine muhtemelen "güncel değil " ile yanıt verecek şekilde yapılandırılır. ” veri. Ancak bu ilk senkronizasyonsa, veri seti boş olabilir. Bu davranış replica-serve-stale-data parametresi tarafından kontrol edilir.

Ayrıca, Redis 2.6 varsayılan olarak kopyalar salt okunur olduğundan, bu, replica-salt okunur parametresi tarafından kontrol edilir. Uygulama ihtiyaçlarınıza uyacak şekilde diğer kopya yapılandırma ayarlamalarını yapabilirsiniz.

20. Gerekli tüm değişiklikleri yaptıktan sonra Redis hizmetini tüm kopyalarda yeniden başlatın.

systemctl restart redis

21. Ayrıca, ana sunucudan ve istemcilerden kopyalara bağlantılara izin vermek için güvenlik duvarındaki 6379 bağlantı noktasını açın ve güvenlik duvarı kurallarını yeniden yükleyin.

firewall-cmd --zone=public --permanenent --add-port=6379/tcp
firewall-cmd --reload

Adım 4: Ana Kopya Çoğaltma Durumunu Kontrol Edin

22. Ana kopya çoğaltma yapılandırması tamamlandıktan sonra, kurulumun düzgün çalışıp çalışmadığını aşağıdaki gibi kontrol edebiliriz.

Master'da aşağıdaki komutları çalıştırın.

redis-cli
127.0.0.1:6379> AUTH Securep@55Here
127.0.0.1:6379> info replication

23. Ayrıca, kopyalar/bağımlı birimler üzerindeki çoğaltma durumunu aşağıdaki gibi kontrol edin.

redis-cli
127.0.0.1:6379> info replication

23. Şimdi ana örnekteki anahtar/değer ayarlarını yaparak çoğaltmayı test edelim ve verilerin kopyalarla senkronize edilip edilmediğini kontrol edelim.

Master'da şunu yapın:

redis-cli
127.0.0.1:6379> AUTH Securep@55Here
127.0.0.1:6379> set domain 'linux-console.net'

24. Ardından verilerin gösterildiği gibi kopyalarla senkronize edilip edilmediğini kontrol edin.

redis-cli
127.0.0.1:6379> get domain

Ana Örneği Bazı Yazmaların Kaybolması Riskine Karşı Koruma

25. Redis, ana örneğin, yeterli kopya olmaması durumunda bazı yazma işlemlerinin kaybolma riskini belirli bir saniyeyle sınırlamasına olanak tanıyan bir özelliğe sahiptir.

Bu, N'den az kopya bağlıysa ve min. tarafından kontrol edildiği şekilde M saniyeden daha az veya m saniyeye eşit bir gecikmeye sahipse ana bilgisayarın yazma kabulünü durdurabileceği anlamına gelir. -yazılacak kopyalar ve min-replicas-max-lag seçenekleri sırasıyla.

Bunları ayarlamak için açıklamaları kaldırın ve aşağıdaki ekran görüntüsünde gösterildiği gibi /etc/redis.conf dosyasındaki kurulum gereksinimlerinize göre değerleri ayarlayın. Bu yapılandırma, son ping'den kopyalara kadar, 10 saniye sonra çevrimiçi kopya sayısı 2'den azsa ana bilgisayarın yazma kabulünü durduracağı anlamına gelir.

min-replicas-to-write 2
min-replicas-max-lag 10

/etc/redis.conf yapılandırma dosyasının geri kalanında daha fazla seçenek bulabilirsiniz ve çoğaltma hakkında daha ayrıntılı bilgi için Redis belgelerini okuyabilirsiniz.

Bir sonraki makalede, CentOS 8'de Sentinel ile yüksek kullanılabilirlik için Redis'in nasıl kurulacağını ele alacağız. O zamana kadar kilitli kalın ve bize ulaşmanız için aşağıdaki yorum formumuzu kullanarak düşüncelerinizi ve sorularınızı paylaşmayı unutmayın.