
Redis Nedir
“Redis nedir” sorusuna verilebilecek en kısa cevap; Redis’in bellek içi veri yapılandırma, saklama ve mesaj dağıtıcısı olarak kullanılmak üzere geliştirilmiş veritabanı önbellekleme aracı olduğudur. Bu yazıda Ubuntu 16.04 yüklü bir sunucu üzerinde çalışan bir WordPress web sitesi için Redis konfigürasyonu anlatılmaktadır.
Redis Server, WordPress’i hızlandırmak için geçici işlemlerin saklandığı bir önbellek aracı olarak kullanılabilir. Geçici işlemler, WordPress veri tabanında tutulan süreksiz veri nesneleridir. Benchmark testleri Redis’in belirgin bir performans artışı sağladığını göstermektedir.
Ön Gereklilikler
Bu rehberi tamamlayabilmek için ön gereklilikler:
- Temel Terminal uygulaması komutlarını biliyor olmalısınız. İsterseniz Terminal Nasıl Kullanılır başlıklı blog yazımıza göz atabilirsiniz
- Ubuntu 16.04 yüklü bir sunucuya ssh erişimi
- Sudo yetkilerine sahip root dışında bir kullanıcı. Sunucunuza root hesabı üzerinden erişmek büyük güvenlik risklerine neden olabilir.
Yapı ve Test Bağımlılıklarını yükleyin
Redis’in en son sürümünü yükleyebilmek için kodu kaynağından indirip derleyeceğiz, bu bizim en stabil Redis versiyonuna sahip olmamızı sağlayacak. Bunun için Ubuntu Repozituarından build-essential meta paketini indireceğiz. Ayrıca binarilerimizi test etmek için de tcl paketini indirip kullanacağız.
Sunucumuzun lokal repozituarını güncellemek ve uygulamayı indirmek için aşağıdaki komutla kuruluma başlıyoruz:
Redis'i İndirin, Derleyin ve Kurun
Bu bölümde Redis’i nasıl indirip, kaynak kodunu derledikten sonra kuracağımız öğreneceğiz.
1- Kaynak kodu indirin ve derleyin
Kaynak kodu indirip derledikten sonra saklamamıza gerek olmadığı için Redis binarileri geçici dosyaları sakladığımız /tmp klasörüne indirip işlemi tamamladıktan sonra silebiliriz. tmp klasörüne geçmek için aşağıdaki komutu kullanıyoruz:
Redis’in en son sürümünü indirmek için aşağıdaki komuru kullanın. (Redis’in stabil en son sürümünü indirmek için her zaman bu linki kullanabilirsiniz.)
İndirdiğiniz sıkıştırılmış Tarball dosyalarını açmak için bu komutu kullanın:
Açılmış klasörün içine girin.
2- Redis'i kurun
Şimdi aşağıdaki komutu yazarak Redis binari kodunu derleyin.
Binarilerin derlenmesi tamamlandıktan sonra, test aracını kullanarak Redis’in tümüyle doğru olarak derlenip derlenmediğini kontrol edin.
Bu işlem genellikle bir kaç dakika içinde tamamlanır. eğer test sonuçları tamamsa aşağıdaki komutla Redis’in kurulum işlemine geçebiliriz.
Redis Konfigürasyonu
Redis kurulumu tamamlandığında göre artık konfigürasyona başlayabiliriz.
ama daha önce konfigürasyon dosyasını içinde saklayabileceğimiz önce bir konfigürasyon dizini yaratmalıyız. Bunun için aşağıdaki komutu kullanarak /etc/redis klasörünü oluşturuyoruz.
Şimdi Derlediğimiz Redis kodundaki örnek konfigürasyon dosyasını /etc/redis klasörüne kopyalayıp, ihtiyaçlarımıza göre düzenlemeye başlayabiliriz.
Şimdi konfigürasyon dosyasını bir kaç değişiklik yapmak için açalım.
Karşınıza aşağıdakine benzer bir şey çıkmış olmalı. Dosyanın içinde supervised direktifinin no olarak işaretlendiğini göreceksiniz. systemd init system özelliği olan bir işletim sistemi kullandığımız için bu değeri systemd olarak değiştireceğiz.
. . .
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
supervised systemd
. . .
Şimdi dır dizinini bulun. Bu opsiyon Redis’in mevcut datayı nerede saklayacağını belirler. Bunun için Redis’in yazma izinlerinin olacağı ama normal kullanıcılar tarafından görülemeyecek bir yer seçeceğiz. Bu yer birazdan yaratacağımız /var/lib/redis dizini olacak.
. . .
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis
. . .
bu işlemi tamamlayınca dosyayı kaydedip kapatın. Kaydedip kapatmak için önce ctrl + x ardından enter tuşuna basmalısınız.
Bir Redis systemd Dosyası Oluşturun
Şimdi bir systemd ünitesi oluşturup onu Redis proseslerini kontrol etmek için kullanacağız.
Başlamak için bir /etc/systemd/system/redis.service dosyası yaratıp onu düzenleyeceğiz.
Dosyanın içinde önce bir açıklama ve Redis servisi çalıştırmadan önce gerekli ağ bağlantılarını başlatacak direktifleri [Unit] bölümününde oluşturacağız.
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
başlığının altında servis davranışlarını belirliyoruz. Güvenlik nedeniyle servisi root
olarak asla çalıştırmamalıyız. Bunun yerine sadece ilgili servisler için bir redis
kullanıcısı oluşturacağız. Bu kullanıcı sadece ilgili servisleri kulanmak için anlık olarak oluşturulacak.
Servisi başlatmak için, sadece redis-server kodunun bizim konfigürasyonumuzu göstermesi yeterli. Durdurmak için redis shutdown
komutunu redis-cli
komutuyla beraber kullanabiliriz. Örneğin, redis-cli redis shutdown
gibi. İlaveten hata durumlarında Redis’i yeniden çalıştırabilmek için, Restart
direktifini de always
olarak işaretlemeliyiz.
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
Son olarak, [Install]
başlığının altında bir systemd target tanımıyla Redis proseslerinin eğer etkinleştirilmişlerse sunucu başlatılırken otomatik olarak çalıştırılmasını sağlayacağız.
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
bu işlemi tamamlayınca dosyayı kaydedip kapatın. Kaydedip kapatmak için önce ctrl + x ardından enter tuşuna basmalısınız.
Redis Kullanıcısını, Grubunu ve Dizinini Oluşturun
Şimdi daha önce referans verdiğimiz kullanıcıyı, grubu ve dizini oluşturmamız gerek.
Redis kullanıcısını ve grubunu aynı anda aşağıdaki komutu yazarak oluşturuyoruz:
Bu işlemden sonra aşağıdaki komutla /var/lib/redis dizinini oluşturacağız.
Bu dizinin sahipliğini redis kullanıcısı ve grubuna vermek için aşağıdaki omutu kullanıyoruz:
Bu işleme paralel olarak dosya izinlerini de bu dosyaları redis kullanıcısından başkalarının göremeyeceği şekilde ayarlıyoruz:
Redis'i Çalıştırıp Test Edin
Artık Redis’i çalıştırmak için hazırız.
Redis Servislerini Çalıştırın
Aşağıdaki komutu yazarak Redis servisini başlatın.
Altaki komutu yazarak Redis’in hatasız çalıştığını kontrol edin:
Eğer buraya kadar anlatılanları eksiksiz olarak uyguladıysanız karşınızaki çıktının aşağıdakine benzer olması gerek.
Output● redis.service - Redis In-Memory Data Store
Loaded: Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-08-29 01:06:12 +03; 4 days ago
Process: 20265 ExecStop=/usr/local/bin/redis-cli shutdown (code=exited, status=0/SUCCESS)
Main PID: 20274 (redis-server)
Tasks: 4
Memory: 5.1M
CPU: 7min 42.123s
CGroup: /system.slice/redis.service
└─20274 /usr/local/bin/redis-server 127.0.0.1:6379
. . .
Redis Kurulumunun Fonksiyonlarını Test Edin
Servisin fonksiyonlarının doğruluğunu test etmek için terminal üzerinden Redis sunucunuza komut satırı istemcisi üzerinden alttaki komutu kullanarak bağlanın:
Komut satırının devamına ping
yazarak bağlantıyı test edin:
gelecek çıktı alttaki gibi olmalıdır:
OutputPONG
Aşağıdaki komutu yazarak, key set edebildiğinizi görün:
- set test "Redis OK!"
OutputOK
Alttaki komutla set ettiğiniz keyi isteyin:
- get test
Dönen değer alttaki gibi olmalıdır:
Output"Redis OK!"
Alttaki komutu yazarak Redis komut satırından çıkıp shell’e dönün:
- exit
Son bir test için Redis’i yeniden başlatın:
Tekrar Redis komut istemine bağlanıp az önce set ettiğiniz keyi isteyin
- get test
Output"Redis OK!"
İşlemi tamamlayınca aşağıdaki komutla tekrar shell’e çıkın:
- exit
Redis'i Başlangıca Ekleyin
Redis’i sunucu yeniden başlatıldığında otomatik olarak çalışacak şekilde ayarlayın. Bunu yapmak için Redis’i systemd servislerine eklemeniz yeterli:
OutputCreated symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.
Sonuç
Bu yazıda Ubuntu 16:04 yüklü bir sunucu üzerinde Redis’i nasıl kurup çalışır hale getirebileceğimizi öğrendik. Eğer ince ayarlarını APACHE, NGINX, WordPress bağlantılarının nasıl yapılacağını öğrenmek isterseniz, Redis & PHP7 Kullanımı | Kurulum ve İnce Ayarlar başlıklı blog yazımıza göz atmanızı öneririz.
Bir cevap yazın
Yorum yapabilmek için giriş yapmalısınız.