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.