Örnekler İle Temel Redis Database

Ömer Kaburcuk
Turk Telekom Bulut Teknolojileri
5 min readDec 16, 2022

Merhaba,

Bu yazımızda öncelikle redis database tanımlarını yapıp ardından linux makinemiz üzerinden redis paketlerini insall edip temel redis komutları inceliyor olacağız.

Redis — Remote Dictionary Server (Uzak Sözlük Sunucusu); ilişkisel olmayan anahtar/değer veri tabanlarını ve önbellekleri uygulamak için yaygın olarak kullanılan açık kaynaklı bir bellek içi veri deposudur.

Bu ayrım önemlidir. Çünkü Redis teknik olarak bir veri yapısı deposudur ve bir anahtar/değer veri tabanı değildir. Geleneksel anahtar — değer veri tabanlarında, her anahtar, yorumlanmamış bir bayt dizisiyle ilişkilendirilen isteğe bağlı bir dizedir.

Redis gibi veri yapısı depoları bu sınırlamayı kaldırır. Anahtar bir dize veya liste, küme, karma, bit dizisi veya akış gibi daha karmaşık bir veri yapısı olabilir. Bu, geliştiricilerin birden çok Redis kullanım örneğinden yararlanmasını sağlar:

  • Anahtar-değer veri tabanı: Redis, yaygın olarak, hafif ve verimlidir ve ilişkisel olmayan bir anahtar-değer veri tabanını uygulamak için kullanılır. Örneğin, 1 milyon küçük anahtar (örneğin dizeler) içeren bir veri tabanı, bellekte yaklaşık 85 megabayt yer kaplar.
  • Önbellek: Rastgele verileri depolayabildiği için Redis, bir uygulama önbelleği de uygulayabilir. Veriler bellekte depolanır ve önbellekten okuma ve önbelleğe yazarken mümkün olan en iyi performansı sunar.
  • Message broker: 2.0 sürümünden bu yana Redis, message broker olarak da kullanılmasına izin veren yayınla/abone ol mesajlaşma modelini destekler.

Redis Kurulumu

apt-get update Ubuntu gibi Debian temelli Linux dağıtımlarında, tanımlanmış kaynaklardan yeni yazılım paketlerini indirme ve bağımlılıkları ile birlikte kurma gibi işlemleri yerine getirmek için kullanılan bir komut satırıdır.

apt-get upgrade ise bu dağıtımlara ait paketleri yükseltmek ve paket liste içeriklerini güncellemek için kullanılır.

redis veri tabanı kurulumlarına gerekli editörleri kurarak devam edeceğiz.

apt install lsb-release Linux kurulumumuz hakkında bilgi alıyoruz. Ubuntu veya Debian temelli Linux dağıtımlarında kullanılır.

apt-get install gpg gpg editörünü indirip kurar.

curl -fsSL https://packages.redis.io/gpg | gpg — dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg redis kurulum paketini kendi internet sitesinden indirir ve kurar.

apt-get install redis redis editörünü indirir ve o editöre ait parametrelere erişmemizi sağlar.

redis-server komutuyla redis server’in çalışması sağlanır ve aşağıdakine benzer bir çıktı görmüş olursunuz. Burada ilgili port numarasını, PID numarasını redis versiyonunu, Redisin hazır olup olmadığı gibi detayları da görüntüleyebilirsiniz.

redis-server — daemonize yes komutuyla redise ait server’ın ( 127.0.0.1:6379 ) arka planda çalışmasını sağlamamız gerekiyor bu komut satırı kullanılmadığı takdirde bağlantı reddediliyor.

redis-server & komutuylada redis serverını arka planda çalıştırabilirsiniz.

redis-cli Komutunu kullanarak server bağlantısını kurabilirsiniz.

Bu aşamalar başarıyla tamamlanmışsa redis arayüzüne erişmiş oluyorsunuz.

Komut satırlarımızı burada yazıyor olacağız “ 127.0.0.1:6379 > “

Redis komut satırından çıkmak için “ ctrl + c “ yi kullanabilirsiniz.

PING komutunu kullanarak öncelik bağlantı durumunu kontrol edebilirsiniz. Çıktınızın “ pong “ olması gerekmektedir.

INFO komutuyla bir sisteme ait detaylı verileri görüntülemenizi sağlar.

CONFIG GET * değiştirebileceğiniz tüm değişkenlerin listesini size sıralar.

Sistem detaylarını ve bulunduğumuz database verilerini görüntülediğimiz komut satırlarının ardından küçük pratikler yaparak ilerlemeye devam edelim.

Redis Komut Satırında Alıştırmalar

İlk olarak KEYS komutunu öğrenerek başlayabiliriz.

KEYS * komutunu çalıştırarak set edilen varsa keyleri görüntüleyebilirsiniz. Sisteminizde herhangi bir key set edilmemişse ( empty list or set ) olarak dönüş alacaksınızdır.

SET mykey “Merhaba Bulut Bilisimci “ komutunu kullanarak bir key oluşturmuş oluyoruz ve “ Merhaba Bulut Bilisimci “ yazısını ekrana çıktı olarak vermesini sağlıyoruz çift tırnak içerisinde belirtmeseydik ifadeyi bize değer olarak atamış olacaktı buna dikkat ederek işlemlerimizi devam ettirebiliriz. Eğer komut satırını doğru bir şekilde tamamladıysanız sadece OK olarak geri dönüş yapar

GET mykey komutunu kullanarak set etmiş olduğumuz ve adını mykey olarak belirlediğimiz çıktıyı bize getirecektir.

Şimdi bilgilerimizden oluşan keyleri set edip çağırmaya devam edelim

SET adım Omer

SET soyadım Kaburcuk

SET yasim 26

KEYS * komutuyla set etmiş olduğumuz keyleri bize listelemektedir.

Artık istediğiniz keyleri GET kullanarak çağırabilir ve değerlerini döndürebilirsiniz.

Şimdi diyelimki yüzlerce key set ettiniz ve içlerinden bir tanesi bulmak istiyorsunuz bunu öğrenmek için aşağıdakine benzer bir komut satırı çalıştırmanız gerekiyor.

EXISTS soyadım bu komutu çalıştırdığınız “ 1 veya 0 “ şeklinde integer olarak yanıt gelmektedir. Bu keyde ( soyadım ) bir tanımlama oluşturduğumuz için değer 1 olarak gösterecektir.

EXISTS soyisim Listemizde soyisim olarak bir key tanımlamadığımız için 0 değerini gösterecektir.

Not:

(integer) 1 = Böyle bir keyin var olduğunu belirtir.

(integer) 0 = Böyle bir keyin listenizde bulunmadığını belirtir.

DEL mykey oluşturduğumuz keyi siler

KEYS * key listesinde silindiğini görmüş olursunuz.

APPEND redis Bulut bu komut öncelikle redis adında bir keyin olup olmadığını key listenizden search eder eğer listenizde set edilmiş redis adında key varsa sonuna Bulut yazısını ekler ve çıktı olarak öncelikle redis keyine ait karekter saysını bizlere getirir. Burada çıktı olarak ( integer ) 5 değerini yani Bulut kelimesinin karekter sayısını verecektir. redis diye bir key tanımlı değilse önce onu set edip içine Bulut yazısını set eder

APPEND redis “ Bilisimci “ komutunu kullanarak önceden set ettiğimiz redis keyinin sonuna Bilisimci yazısını ekler ve Bulut Bilisimci karekter sayısını 15 i gösterir

GET redis komutuyla redis keyine set edilen değeri gösterir. Çıktınız “Bulut Bilisimci” olacaktır.

Hash olarak isimlendirilen komuta birazda bakalım. Hash key field value formatına uygun olarak 1 keyin altında birden fazla alan ekleyerek değer döndürmemizi sağlıyor. Bu durumu örnek yaparak incelemeye devam edelim

HSET TT mudurluk “Storage & Backup Operations “

HSET TT domain fix

HSET TT email okaburcuk@gmail.com

HSET TT program Netbackup

Yukarda belirtilen komut satırlarından birini inceleyelim.

HSET TT mudurluk “ Storage & Backup Operations “

HSET girdi yapıp TT adında bir key belirledim. Mudurluk ise benim keyimin altında bulunan bir alt key gibi düşünebilirsiniz ve burada “ Storage & Backup Operations “ u değer olarak atadım ve çağırıldığında bu değerin dönderilmesini istiyorum.

HGET TT email komutunu kullanarak okaburcuk@gmail.com adresini ekrana çıktı olarak yazdırabilirim.

HGETALL TT komutuyla da alt key olarak belirlediğimiz ve atanan değerleri de gösteren bir liste çıktı olarak gelmektedir.

Diyelim ki bir key set edip buna değer atayıp belirli bir süre sonra da set edilen bu değerin key listemizden silinmesini istiyorum bunu nasıl yapabilirim:

SET sil 123456 Ex 5 Sil adında bir key set edip değerini 123456 belirledik ve Expiration kısaltması olan EX ile süre gireceğimizi belirttik ve onuda 5 saniye olarak atadık.

KEYS * diyerek key listemize sil set edilmiş olacaktır ve 5 saniye sonra sil listeden silinecektir.

Vakit ayırıp okuduğunuz için teşekkür ederim.

--

--