Redis Sunucusu ve PHP Redis Modülünün Ubuntu 22.04 LTS Üzerinde Kurulumu

Redis, milyonlarca geliştirici tarafından önbellek, vektör veri tabanı, belge veri tabanı, akış motoru ve mesaj aracısı olarak kullanılan açık kaynaklı, bellek içi veri depolama aracıdır. Redis’i sisteminize kurmak istiyorsanız doğru yerdesiniz. Bu yazımızda Redis’i sisteminize kurmanın en kolay yöntemini anlatıyor olacağız.

Redis Nerelerde Kullanılır ?

Redis, yüksek performansı sayesinde verileri önbellek (RAM) üzerine kayıt etmek amacıyla kullanılır. Yüksek trafiğe sahip sayfaları önbelleğe almak için de Redis kullanabilirsiniz. Bir kez önbelleğe alınan veri artık diskten değil ram den okunmaya başladığı için okuma hızı performansı takdire değer bir hızda yükselir. Redis veri tabanı genellikle aşağıdaki durumlarda kullanılır.

  • Uygulamanızda kullanıcı rol ve yetkileri, oturum bilgileri gibi dinamik olarak çok sık değişen ve kullanıcının veri tabanına sürekli gitmesini istemediğiniz durumlarda.
  • Chat gibi online mesajlaşma sistemlerinde mesaj dağıtıcısı olarak.
  • Site trafiği veri toplama gibi istatistiksel işlemlerde.
  • Oturum açma işlemlerinde başarısız oturumların istatistiğini tutmak için.
  • Kullanıcılara şifremi unuttum veya kodu sıfırla gibi kodlar gönderildikten sonra geçici kodu önbellekte tutmak için
  • API uygulamanıza rate limit gibi bir güvenlik önlemi almak için.
  • Bir oyun projesinde Redis Sorted Set veri yapısını kullanarak sıralanmış skor listesi oluşturmak için.
  • ve hatta RabbitMQ gibi bir message broker olarak.

Kurulum

Redis sunucusunu Ubuntu’ya kurmadan önce sistemi ve tüm bağımlılıkları güncellemek için aşağıdaki komutu kullanın.

sudo apt update

Redis Sunucusu paket verileri Linux’un apt (Gelişmiş Paket Aracı) deposunda mevcuttur ve Redis, aşağıdaki komut kullanılarak Ubuntu’ya kurulabilir.

sudo apt install redis-server

Redis kurulumundan sonra servisin durumunu, çalışıp çalışmadığını kontrol edin. Bu yüzden aşağıdaki komutu çalıştırın.

sudo service redis status
redis-server.service - Advanced key-value store
     Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2024-02-24 14:24:02 +03; 4h 19min ago
       Docs: http://redis.io/documentation,
             man:redis-server(1)
   Main PID: 963 (redis-server)
     Status: "Ready to accept connections"
      Tasks: 5 (limit: 4554)
     Memory: 5.6M
        CPU: 13.571s
     CGroup: /system.slice/redis-server.service
             └─963 "/usr/bin/redis-server 0.0.0.0:6379" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ">

Sisteminizi her yeniden başlattığınızda redis sunucusunun otomatik başlatılmasını istiyorsanız aşağıdaki komutu çalıştırın.

sudo systemctl enable redis-server

Yerel Ortam Konfigürasyonu

Redis’i önbellek olarak kullandığınızda, /etc/redis/redis.conf dosyasında bulunan varsayılan yapılandırma dosyasındaki bazı parametreleri değiştirmeniz gerekir. Yerel sunucunuz için Redis Yapılandırmasında şifre ayarlama gibi işlemlere gerek olmayacağından aşağıdaki ayarları yapmanız yeterli olacaktır. Terminalde düzenleme yapmak için aşağıdaki komutu çalıştırın.

vim /etc/redis/redis.conf

Aşağıdaki ayarlar Redis e herhangi bir şifre olmadan aynı zamanda uzak bir bilgisayardan erişebilmenizi sağlayacak.

bind 0.0.0.0
protected-mode no

Yapılan değişliklerden sonra Redis sunucusunu yeniden başlatmanız gerekecek.

service redis-server restart

Üretim Ortamı Konfigürasyonu

Üretim ortamında güvenlik nedeniyle Redis sunucusunu dışarıya kapatmanız ya da bir vpn ile kullanmanızı tavsiye ediyoruz. Ve mutlaka bir şifre ayarlamalısınız. Aşağıdaki ip adresi konfigürasyonu sadece yerel sunucudan Redis sunucusuna erişime izin verir ve uzaktan erişim isteklerini reddeder.


bind 127.0.0.1 ::1
protected-mode yes

Require pass satırını bulup karşısındaki değere şifrenizi yazın.

requirepass write_your_secure_password

PHP Redis Extension Kurulumu

Redis sunucusunu PHP tabanlı uygulamalar ile kullanmak istiyorsanız aşağıdaki komutu kullanarak PHP Redis modülünü kurmalısınız. Modülü kurmadan önce sistemde PHP yüklü olmalıdır.

sudo apt install php-redis

Redis modülü php aktivastonu için aşağıdaki komutu çalıştırın.

sudo phpenmod redis

Eğer modülü devre dışı bırakmak istiyorsanız aşağıdaki komutu deneyin.

sudo phpdismod redis

Çoklu Php Sürümleri

Eğer sisteminizde çoklu PHP sürümleri var ve PHP Redis uzantısını başka bir sürüm için de aktif etmeniz gerekiyorsa aşağıdaki adımları izleyin. Bu örnekte; sisteminizde PHP 8.1 için Redis’in yüklü olduğunu ve PHP 8.2 sürümü için de Redis’i aktif etmeniz gerektiğini varsayıyoruz.

sudo apt-get install php8.2-redis
phpenmod -v 8.2 redis

Redis Bağlantısını Test Edin

Redis CLI’yi kullanarak Redis sunucusunun düzgün çalışıp çalışmadığını test edebilirsiniz, bunun için aşağıdaki komutu çalıştırın.

redis-cli ping
// PONG

Bazı Yararlı Redis-Cli Komutları

redis-cli info stats
redis-cli info server

Redis sunucusundaki kayıt edilmiş tüm veri anahtarlarını listelemek için aşağıdaki komutu kullanabilirsiniz.

redis-cli --scan --pattern '*'
oloma:policies:privacy-policy:tr
oloma:policies:privacy-policy:en
oloma:policies:end-user-license-agreement:en
oloma:policies:data-protection-and-processing-policy:en
oloma:policies:cookie-policy:en
oloma:policies:gdpr-information-text:en
demo_app:App\Model\PermissionModel:findPermissions
tr_oloma_news_feed_data
en_oloma_news_feed_data

Sunucudaki kayıtlı tüm önbelleği silmek/temizlemek için aşağıdaki komut işinizi kısa yoldan çözecek.

FLUSHALL

Redis Auth

Üretim ortamda redis komutlarını kimlik doğrulama yapmadan çalıştırmanız mümkün değildir. Bunun için auth komutunu kullanmanız gerekir.

auth your-password

Redis Masaüstü Uygulamaları

Son olarak redis veri tabanınızı kolayca yönetmenizi sağlayacak görsel arayüze sahip masaüstü uygulamalardan bahsedelim.

Resp.app

Eğer Windows kullanıyorsanız kolay bir arayüze sahip resp.app uygulaması ile redis sunucusuna yerel veya uzaktan bağlanabilir, bu ücretsiz uygulama ile veri tabanında oluşturduğunuz verileri farklı biçimlerde görüntüleyebilirsiniz.

Takip eden linkten resp.app uygulmasını Windows işletim sistemleri için Microsoft mağazasından indirebilirsiniz.
https://apps.microsoft.com/detail/9ndk76zvz3tm?hl=en-US&gl=TM

RedisInsight

RedisInsight Redis tarafından geliştirilen; Windows, macOS (M1 dahil), Linux gibi işletim sistemlerinde de çalışabilen gelişmiş özelliklere sahip bir redis arayüzü.

Takip eden bağlantıdan RedisInsight uygulmasını indirebilirsiniz.
https://redis.com/redis-enterprise/redis-insight/

Sonuç

Redis Server, esas olarak veri depolama ve nesne önbelleğe alma için kullanılan açık kaynaklı bir yazılımdır. Redis Server yukarıda bahsettiğimiz gibi Ubuntu/Linux işletim sistemlerinde kolaylıkla kurulabilmektedir. Bu yazımızda Redis’i yüklediniz ve yapılandırdınız, Redis kurulumunuzun düzgün çalışıp çalışmadığını doğruladınız ve üretim ortamı için güvenli bir şekilde Redis kurulum adımlarını tamamladınız.

Birisi sunucunuzda oturum açtığında, uygulamaya koyduğumuz Redis’e özgü güvenlik özelliklerini atlatmanın çok kolay olduğunu unutmayın. Bu nedenle, üretim ortamındaki Redis sunucunuzdaki en önemli güvenlik önlemi bir güvenlik duvarı veya vpn gibi bir özel ağ ile sunucuya erişimdir.

Nvm Yöneticisi ile Ubuntu 22.04 LTS Üzerinde Node.js Kurulumu

Node.js, sunucu taraflı programlamaya yönelik bir JavaScript çalıştırma aracıdır. Geliştiricilerin, çoğu kişinin zaten tarayıcı tabanlı web geliştirmeden aşina olduğu bir dil olan JavaScript’i kullanarak ölçeklenebilir arka uç işlevselliği oluşturmasına olanak tanır.

Bu yazımızda, Node.js’yi bir Ubuntu 22.04 sunucusunda kurmanın en esnek yolunu Nvm yani (Node Version Manager) ile kurma yolunu göstereceğiz.

Kuruluma başlamadan önce en güncel nvm sürümünü resmi nvm depo adresinden https://github.com/nvm-sh/nvm/releases öğrenelim. Şu andaki resmi sürüm 0.39.7 gözüküyor.

NVM Kurulumu

Nvm in yeni sürümünü edinmek için apt paket yöneticisini kullanabilirsiniz. Önce şunu yazarak yerel paket dizininizi yenileyin:

sudo apt update

Sonra güncel versiyona göre Nvm yükleme sh dosyasını indirin:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Yukarıdaki kod, nvm betiğini kullanıcı hesabınıza yükleyecektir. Bunu kullanmak için önce .bashrc dosyanızı kaynaklamanız gerekir:

source ~/.bashrc

Hangi nvm sürünümü kullandığımız görebilmek için nvm –version komutunu kullanın.

nvm --version
0.39.7

Artık NVM’e hangi Node sürümlerinin mevcut olduğunu sorabilir ve en son sürüme göre Node.js için kurulum aşamalarına geçebilirsiniz:

nvm list-remote
// output
        v20.4.0
        v20.5.0
        v20.5.1
        v20.6.0
        v20.6.1
        v20.7.0
        v20.8.0
        v20.8.1
        v20.9.0   (LTS: Iron)
       v20.10.0   (LTS: Iron)
       v20.11.0   (LTS: Iron)
->     v20.11.1   (Latest LTS: Iron)
        v21.0.0
        v21.1.0
        v21.2.0
        v21.3.0
        v21.4.0
        v21.5.0
        v21.6.0
        v21.6.1
        v21.6.2

Node.js Kurulumu

Yukarıdaki listelenen sürümlerden en son güncel sürümü kopyalayın ve bu Node sürümünü yüklemek için aşağıdaki komutu çalıştırın:

nvm install 20.11.1

Eğer makinanızda birden fazla node sürümü mevcut ise nvm use komutu ile nvm in istediğiniz sürümü kullanmasını sağlayabilirsiniz.

nvm use 20.11.1

Use komutu ile seçilen sürüm sadece geçerli oturumunuzda etki olacak. Eğer seçtiğiniz sürümü varsayılan olarak kalıcı hale getirmek istiyorsanız aşağıdaki komutu çalıştırın.

nvm alias default node

Yüklediğiniz farklı sürümleri ve şu anda hangi geçerli sürümü kullandığınız nvm list komutu ile görebilirsiniz:

nvm list
->     v20.11.1
default -> node (-> v20.11.1)
node -> stable (-> v20.11.1) (default)
stable -> 20.11 (-> v20.11.1) (default)

Node.js nin Kaldırılması

Nvm kullanarak yüklediğiniz bir Node.js sürümünü kaldırmak için öncelikle bunun geçerli etkin sürüm olup olmadığını belirleyin:

nvm current
v20.11.1

Hedeflediğiniz sürüm geçerli etkin sürüm değilse aşağıdaki komutu çalıştırın:

nvm uninstall v19.1.0
// Output
Uninstalled node v19.1.0

Bu komut seçilen Node.js sürümünü kaldıracaktır. Kaldırmak istediğiniz sürüm mevcut etkin sürümse değişikliklerinizi etkinleştirmek için öncelikle nvm’yi devre dışı bırakmanız gerekir:

nvm deactivate

Bu işlemden sonra daha önce kullanılan kaldırma komutunu kullanarak mevcut sürümü kaldırabilirsiniz.

Sonuç

Ubuntu 22.04 sunucunuzda Node.js’yi kurup çalıştırmanın pek çok yolu vardır. Ubuntu deposundaki paketlenmiş sürümü kullanmak en kolay yöntem olsa da, Nvm veya NodeSource PPA kullanmak ek esneklik sunar.

Node.js ile programlama hakkında daha fazla bilgi için lütfen Node.js api dokümantasyonuna göz atabilirsiniz.