14 Ocak 2023 • 25 dakikalık okuma
Adını Remote Dictionary Server, kelimelerinin kısaltmasından alan Redis bir çok özelliği bünyesinde barındır.
Redis, bilgisayarın hafızasında çalışan hızlı ve açık kaynaklı veritabanıdır. Redis genellikle önbellekleme için kullanılır fakat içerdiği diğer özellikleriyle uygulama veritabanı olarak da kullanılabilir.
Redis tüm verileri hafıza üzerinde bulunduğundan çok hızlı çalışır. Redis açık kaynaklı bir uygulamadır, verilerin anlık durumu kaydedilebilir. Tüm verileri bir dosyaya yazabilir böylece ana veritabanı olarak kullanılabilir. Ölçeklenebilir ve kolay kullanım sağlar. PubSub alt yapısına sahiptir.
Redis Server kurmak için;
sudo apt-get install redis-server
Redis Server kurulumunu kontrol etmek için;
redis-server --version
redis-cli --version
Redis Command Line Interface açmak için;
redis-cli
Redis Command Line Interface ortamını Türkçe harf destekli açmak için;
redis-cli --raw
Redis uzak sunucuya bağlanmak için; redis uzak sunucu ip ve redis port numarası yazılır;
redis-cli -h 127.0.0.1 -p 6379
Redis Command Line Interface ortamından çıkmak için;
quit
Redis Server bağlantısını kontrol etmek için;
ping
PONG döner ise bağlantı başarılıdır.
Ekrana yazı yazdırmak için;
echo "Merhaba Dünya"
String değer tutmak için kullanılır.
Değer eklemek için;
set firstName Aydan
set fullName "Aydan GELMİŞ"
set date:of:birth 2022.12.30
set "Date of Birth" 2022.12.30
Değeri almak için;
get firstName
get fullName
get date:of:birth
get "Date of Birth"
Birden fazla değeri almak için;
mget firstName fullName
Değerin karakter uzunluğu getirir;
strlen fullName
Tam sayı değerini bir attırır;
incr count
Tam sayı değerini bir eksiltir;
decr count
Değeri silmek için;
del firstName
Tüm değerleri silmek için;
flushall
Anahtar olup olmadığını kontrol etmek için;
exists firstName
Var ise 1 yok ise 0 döner.
Tüm anahtarları görmek için;
keys *
String değerleri liste olarak tutmak için kullanılır.
Değeri liste olarak kaydeder;
lpush people "kamil"
lpush people "aydan"
lpush people "altan"
lpush people "özgür"
lpush people "tayfun"
Listedeki tüm değerleri gösterir;
lrange people 0 -1
Listedeki yazılan aralıktaki olan öğelerin değerlerini gösterir;
lrange people 2 4
Değeri listenin en altına ekler;
rpush people "ışın"
Listenin öğe sayısını verir;
llen people
Listedeki en üstteki elemanı siler;
lpop people
Listedeki en alttaki elemanı siler;
rpop people
Yazılan değerden önceki sıraya yeni değer ekler;
linsert people before "altan" "sertaç"
Yazılan dizindeki değeri verir;
lindex people 2
Yazılan dizindeki değeri değiştirir;
lset people 0 "nizami"
Listeyi sıralar;
sort people ALPHA
sort people desc ALPHA
Tekil değerleri dizi halinde tutmak için kullanılır;
Set dizisine değer ekler;
sadd cities "Kırklareli"
sadd cities "Kırşehir"
sadd cities "Konya"
sadd cities "Kocaeli"
sadd cities "Kars"
Set dizisine birden fazla değer ekler;
sadd cities "Kastamonu" "Kırıkkale" "Kahramanmaraş"
Set dizisindeki tüm değerleri yazar;
smembers cities
Set dizisindeki değerin olup olmadığını yazar;
sismember cities "Kahramanmaraş"
Set dizisindeki değerlerin sayısını verir;
scard cities
Set dizisindeki değeri başka diziye taşır;
smove cities citiesVisited "Konya"
Set dizisindeki değeri siler;
srem citiesVisited "Kırklareli"
İki set arasındaki farklı öğeleri getirir;
sdiff cities citiesVisited
iki set arasındaki farklı öğeleri yeni set dizisine kaydeder;
sdiffstore citiesDifferent cities citiesVisited
Setler içindeki aynı öğeleri getirir;
sinter cities citiesVisited citiesOld
Setler içindeki aynı öğeleri yeni set dizisine kaydeder;
sinterstore newSet cities citiesVisited citiesOld
Set dizilerini birleştirir;
sunion cities citiesVisited
Set dizilerini birleştirip kaydeder;
sunionstore newSet cities citiesVisited
Tekil değerleri dizi halinde istenen sıralamaya göre tutmak için kullanılır;
Sorted set dizisine değer ekler;
zadd users 1978 "Kamil"
zadd users 1970 "Aydan"
zadd users 1980 "Tayfun"
Sorted set dizisindeki değerin sıralamasını verir;
zrank users "Aydan"
Sorted set dizisindeki değerin sıralamaya göre getirir;
zrange users 0 -1
Sorted set dizisindeki değerleri ve sıralamalarını getirir;
zrange users 0 -1 withscores
Sorted set dizisindeki değerin tersten sıralamaya göre getirir;
zrevrange users 0 -1
Sorted set dizisindeki öğe sayısını verir;
zcard users
Sorted set dizisindeki öğeyi siler;
zrem users "Aydan"
Sorted set dizisindeki öğenin sıralama değerini verir;
zscore users "Kamil"
Sorted set dizisindeki öğenin sıralama değerini arttırır;
zincrby users 100 "Kamil"
Sorted set dizisinde yazılan dizin aralığındaki değerleri siler;
zremrangebyrank users 0 2
Değerleri istenen gruplamaya göre tutmak için kullanılır.
Hashe değer ekler;
hset user:1234 userName "agelmis" firstName "Aydan" lastName "Gelmiş"
Hashdeki değeri gösterir;
hget user:1234 userName
Hashdeki tüm anahtar ve değerleri gösterir;
hgetall user:1234
Hashdeki tüm değerlerin sayısını gösterir;
hlen user:1234
Hashdeki tüm değerleri gösterir;
hvals user:1234
Hashdeki girilen anahtardaki değerlerin karakter uzunluğunu gösterir;
hstrlen user:1234 userName
Hashde anahtarın olup olmadığını kontrol eder;
hexists user:1234 name
Hashde anahtar yoksa ekler;
hsetnx user:1234 name Kamil
Hashdeki anahtarı ve değerini siler;
hdel user:1234 userName
Tüm hashi siler;
del user:1234
Tekil öğelerin sayısını bulmak için kullanılır. Sadece pfadd, pfcount, pfmerge komutları vardır;
Loglara yeni öğe ekler. Loglarda aynı öğe varsa eklemez;
pfadd logs20221230 "Senegal"
pfadd logs20221230 "Somali" "Senegal" "Tanzanya" "Nijerya"
Loglardaki öğe sayısını verir;
pfcount logs20221230
Farklı Logları yeni girilen isimdeki log değişkeninde birleştirir. Aynı öğe varsa birleştirmez sadece tekil öğeleri birleştirir;
pfmerge logsMerged logs20221230 logs20221231
Koordinat bilgilerini tutmak ve aramak için kullanılır;
Koordinat ekler;
geoadd myHouses 41.30077379267293 27.54168184829974 Büyükkarıştıran
Birden fazla koordinat ekler;
geoadd myHouses 41.402943833021645, 27.364776803564922 Lüleburgaz 41.73469389314703 27.224402294969313 Kırklareli
Koordinat adlarını getirir;
zrange myHouses 0 -1
Girilen koordinat değerlerini verir;
geopos myHouses Lüleburgaz
Girilen koordinatın geohash değerini verir;
geohash myHouses Lüleburgaz
Girilen koordinatlar arası kuş uçuşu mesafeyi verir;
geodist myHouses Kırklareli Büyükkarıştıran km
Girilen koordinat çevresindeki lokasyonları verir;
georadius myHouses 41.30077379267293 27.54168184829974 25 km withdist withcoord
Girilen anahtar değeri çevresindeki lokasyonları verir;
georadiusbymember myHouses Büyükkarıştıran 25 km
Birden fazla komutu ard arda tek seferde transaction olarak çalıştırır;
multi
set firstname Aydan
set lastname Gelmiş
get firstname
set username aydangelmis
exec
Hatalı işlem yapılır ise transaction içerisindeki hata vermeyen tüm kodlar çalıştırılır. İşlem geri alınmaz;
multi
set firstname Aydan
set lastname Gelmiş
lpop firstname
set age 21
exec
Birden fazla komutu ard arda tek seferde çalıştırma işlemini iptal eder;
multi
set firstname Aydan
set lastname Gelmiş
get firstname
set username aydangelmis
discard
Değişkeni izleme moduna alır, transaction işlemi başladıktan sonra izlenen değişken başka kullanıcı tarafından değiştirilir ise tüm transaction işlemlerini iptal eder;
set count 39
get count
watch count
multi
set count 40
exec
exec komutundan sonra değişken izleme işlemi de sona erer.
Yayıncı ve abone altyapısı sağlar;
Kanal oluşturur ve dinler;
subscribe kanal1
Kanallar oluşturur ve dinler;
subscribe kanal5 kanal7
İlgili kanaldan yayın yapar;
publish kanal1 "Merhaba Dünya"
Patternli kanal oluşturur ve dinler;
psubscribe kanal*
psubscribe kanal?
İsim ile eşleşen kanallara yayın yapar;
publish kanal "Merhaba"
Patternsiz kanalları getirir;
pubsub channels
Kanallı dinleyen üye sayısını verir;
pubsub numsub kanal1
Patternli kanal sayısını getirir;
pubsub numpat
Kanalı dinlemeyi bırakır;
unsubscribe kanal5
Rediste iki farklı veri saklama seçeneği vardır.
Mevcut verilerin durumunu kaydeder;
save
60 dakikada bir 1000 değişiklik yapılmış ise kaydeder;
save 60 1000
Snapshopt dosyası;
/var/lib/dump.rdb
Tüm değişiklikleri dosyaya yazar;
appendonly yes
Redis config dosyası;
/etc/redis/redis.conf