📒 

Linux’ta Redis’te Scan Komutlarını Kullanma

Açık kaynaklı, bellek içi bir veri yapısı deposu olan Redis, anahtar-değer veritabanı olarak hızı ve çok yönlülüğü ile bilinir. Güçlü özelliklerinden biri, scan komutlarını kullanarak veri kümeleri arasında artımlı olarak yineleme yapabilmesidir. Bu özellikle büyük veri kümeleri ile çalışırken kullanışlıdır, çünkü sunucuyu zorlamadan verimli veri alımına izin verir. Özel bir Linux sunucusundaki kullanıcılar için Redis’te scan komutlarını kullanmak, hassas, kaynak optimizasyonlu veri kümesi işlemeye izin vererek veri işleme performansını artırabilir. Bu makalede, Redis’teki scan komutlarının bir Linux ortamında nasıl etkili bir şekilde kullanılacağını keşfedeceğiz ve verileri büyük ölçekte yönetmek ve almak için ayrıntılı örnekler ve en iyi uygulamaları sunacağız.

Scan Komutları Nedir?

Redis’teki scan komutları, anahtarlar, kümeler, hash’ler ve sıralanmış kümeler üzerinde bloklama yapmadan yineleme yapmanın bir yolunu sağlar. Tüm eşleşen anahtarları bir kerede döndürdüğü için büyük veri kümeleri için tehlikeli olabilen KEYS komutunun aksine, scan komutları bir seferde az sayıda öğe döndürür. Bu, performans etkisini en aza indirir ve artımlı yinelemeye olanak tanır.

Anahtar Scan Komutları

  1. SCAN: Anahtar uzayında anahtarlar arasında yineleme yapar.
  2. SSCAN: Bir kümedeki öğeler arasında yineleme yapar.
  3. HSCAN: Bir hash içindeki alanlar ve değerler arasında yineleme yapar.
  4. ZSCAN: Sıralanmış bir kümedeki üyeler ve puanlar arasında yineleme yapar.

Scan tlarının Temel Sözdizimi

Her scan komutu benzer bir sözdizimine sahiptir:

SCAN imleci [MATCH pattern] [COUNT count]
  • imleç: Scan başlanacak konumu temsil eden bir tamsayı. Yeni bir scan başlatmak için 0 kullanın.
  • MATCH pattern: (isteğe bağlı) Döndürülen anahtarları filtrelemek için bir kalıp. Glob tarzı kalıpları destekler.
  • COUNT count: (isteğe bağlı) Redis’e her yinelemede kaç öğe döndürüleceği hakkında bir ipucu.

Linux üzerinde Redis Kurulumu

Scan komutlarını kullanmaya başlamadan önce, Redis’in Linux sisteminizde kurulu olduğundan emin olun. Debian Dedicated Server kullananlar için Redis’i kurmak kolaydır ve sunucunun bellek içi veri işlemeyi verimli bir şekilde işleme kapasitesini artırabilir. Redis’in Debian tabanlı bir sisteme nasıl kurulacağı ve yüksek performanslı işlemler için optimize edilmiş istikrarlı bir ortamın nasıl sağlanacağı aşağıda açıklanmıştır.

Bu adımları izleyerek, Redis’i özel Debian sunucunuzun kaynaklarından ve kararlılığından yararlanacak şekilde kuracaksınız, bu da sağlam veri işleme görevleri için idealdir.

sudo apt güncellemesi
sudo apt redis-server'ı yükle

CentOS/RHEL için şunu kullanın:

sudo yum redis'i yükle

Kurulduktan sonra Redis sunucusunu başlatın:

sudo systemctl start redis

Redis’e Bağlanma

Terminalinizi açın ve Redis CLI kullanarak Redis örneğinize bağlanın:

redis-cli

Artık Redis komutlarını CLI’da çalıştırabilirsiniz.

SCAN Komutunun Kullanılması

Örnek 1: Temel SCAN

Redis veritabanındaki tüm anahtarları almak için şunları kullanabilirsiniz:

TARAMA 0

Bu komut bir imleç ve bir tuş listesi döndürecektir.

Örnek 2: Anahtarları Filtrelemek için MATCH Kullanımı

“user:” ile başlayan anahtarlar gibi belirli bir kalıpla eşleşen anahtarları bulmak istiyorsanız, şunu kullanabilirsiniz:

SCAN 0 MATCH kullanıcı adı:*

Bu komut yalnızca “user:” ile başlayan anahtarları döndürür.

Örnek 3: COUNT Belirtme

Redis’in her yinelemede kaç anahtar döndürmesi gerektiğini belirtmek için bir sayı belirtebilirsiniz:

SCAN 0 SAYIM 10

Bu, yaklaşık 10 anahtar döndürmeye çalışacaktır. Döndürülen gerçek sayının bundan daha az olabileceğini unutmayın.

Örnek 4: Tüm Anahtarlar Arasında Yineleme

Birden fazla yinelemede tüm tuşlar arasında yineleme yapmak için, döndürülen imleci izlemeniz gerekir. İşte basit bir kabuk betiği örneği:

cursor=0
while true; do
result=$(redis-cli SSCAN myset $cursor MATCH apple:*)
echo "$result" # Sonucu gerektiği gibi işleyin
cursor=$(echo "$result" | awk 'NR==1{print $1}') # İmleci güncelleyin
if [[ "$cursor" == "0" ]]; then
break # İmleç 0'a geri döndüğünde dur
fi
bitti

SSCAN Komutunun Kullanılması

SSCAN komutu, bir kümedeki öğeler arasında yineleme yapmak için kullanılır. Sözdizimi SCAN ile benzerdir:

SSCAN tuş imleci [MATCH pattern] [COUNT count]

SSCAN örneği

Adım 1: Bir Set Oluşturun ve Elemanları Ekleyin

Myset adında bir küme oluşturalım ve ona bazı öğeler ekleyelim:

SADD myset "elma"
SADD myset "muz"
SADD myset "cherry"
SADD myset "tarih"
SADD myset "mürver"

Adım 2: SSCAN Komutunu Kullanın

Artık myset adında bir kümemiz olduğuna göre, SSCAN komutunu kullanarak öğeleri arasında yineleme yapabiliriz.

  1. Temel SSCAN Komutu: “myset” adında bir kümeniz olduğunu varsayalım. Unsurlarını scan için:
    SSCAN myset 0
  2. MATCH Kullanımı: Bir kümedeki öğeleri bir desene göre filtrelemek ve “mango” kelimesini ve diğer varyasyonları içeren bazı öğeler eklemek için::
    SSCAN myset 0 MATCH mango:*
  3. Bir Küme İçinde Yineleme: Bir küme içinde yineleme yapmak için bir döngü kullanabilirsiniz:

#!/bin/bash
cursor=0
echo "myset üzerinden taranıyor:"
while true; do
# Seti tara
result=$(redis-cli SSCAN myset $cursor)
# SSCAN tarafından döndürülen öğeleri yazdır
echo "$sonuç"
# Bir sonraki yineleme için imleci güncelleyin
cursor=$(echo "$result" | awk 'NR==1{print $1}')
# İmleç 0'a geri dönerse döngüyü kır
if [[ "$cursor" == "0" ]]; then
mola
fi
bitti

Komut Dosyasını Çalıştırma

  1. Komut dosyasını scan_myset.sh olarak kaydedin.
  2. Çalıştırılabilir hale getirin:
    chmod x scan_myset.sh
  3. Komut dosyasını çalıştırın:
    ./scan_myset.sh

HSCAN ve ZSCAN Komutlarını Kullanma

HSCAN Komutu

HSCAN komutu, bir karma içindeki alanlar ve değerler arasında yineleme yapar:

HSCAN tuş imleci [MATCH pattern] [COUNT count]

HSCAN komutu, bir hash içindeki alanlar ve değerler arasında yineleme yapmak için kullanılır.

Adım 1: Bir Hash Oluşturun ve Alanlar Ekleyin

  1. Myhash adında bir hash oluşturun ve buna bazı alanlar ekleyin:
HSET myhash adı "John Doe"
HSET myhash yaş "30"
HSET myhash mesleği "Yazılım Geliştirici"
HSET myhash şehir "San Francisco"
HSET myhash ülke "ABD"

Adım 2: Karmayı Yinelemek için HSCAN’ı Kullanın

  1. Myhash içindeki alanlar arasında yineleme yapmak için HSCAN komutunu kullanın:
HSCAN myhash 0

ZSCAN Komutu

ZSCAN, sıralanmış bir kümenin üyelerini artımlı olarak yinelemek için kullanılan bir Redis komutudur. Üyeleri, ilişkili puanlarıyla birlikte verimli ve engellemesiz bir şekilde almanıza olanak tanır. Bu komut özellikle tüm üyelerin bir kerede getirilmesinin pratik olmayabileceği büyük sıralanmış kümelerle çalışmak için kullanışlıdır.

ZSCAN komutu, sıralanmış bir kümedeki üyeler ve puanlar arasında yineleme yapar:

ZSCAN tuş imleci [MATCH pattern] [COUNT count]

Adım 1: Sıralanmış Küme Oluşturma ve Üye Ekleme

Mysortedset adında bir sıralanmış küme oluşturalım ve puanları olan bazı üyeler ekleyelim:

ZADD mysortedset 1 "elma"
ZADD mysortedset 2 "banana"
ZADD mysortedset 3 "cherry"

Temel ZSCAN Komutu:

Sıralanmış seti scan başlamak için şunu kullanın:

ZSCAN mysortedset 0

Adım 2: Üyeleri Filtrelemek için MATCH Kullanma (İsteğe Bağlı)

ZSCAN tarafından döndürülen üyeleri filtrelemek istiyorsanız, MATCH seçeneğini kullanabilirsiniz. Örneğin, “e” harfi içeren üyeleri bulmak için şu komutu çalıştırabilirsiniz:

ZSCAN mysortedset 0 MATCH *e*

Scan Komutlarını Kullanmak İçin En İyi Uygulamalar

  1. KEYSyerine SCAN kullanın: Sunucuyu engelleyebileceğinden üretimde KEYS komutunu kullanmaktan kaçının. Engellemeyen yineleme için SCAN kullanın.
  2. MATCH ve COUNT ile birleştirin: Performansı artırmak ve sonuç kümesini sınırlamak için MATCH ve COUNT seçeneklerini kullanın.
  3. Büyük Veri Kümelerini İşleyin: Büyük veri kümeleriyle uğraşırken, belleği etkili bir şekilde yönetmek için imleçleri kullanarak anahtarları gruplar halinde işleyin.
  4. Geliştirme Aşamasında Test Edin: Üretime dağıtmadan önce beklendiği gibi çalıştığından emin olmak için scan mantığınızı her zaman bir geliştirme ortamında test edin.

Sonuç

Redis’te scan komutlarını kullanmak, sunucunuzu zorlamadan Linux ortamında büyük veri kümeleri arasında verimli bir şekilde yineleme yapmanızı sağlar. SCAN, SSCAN, HSCAN ve ZSCAN’ın nasıl kullanılacağını anlayarak Redis’ten verileri etkili bir şekilde yönetebilir ve alabilirsiniz. Bu komutlar, gerçek zamanlı veri işleme gerektiren ölçeklenebilir uygulamalar oluşturmak için gereklidir. Daha fazla bilgi ve ayrıntılı kullanım için resmi Redis belgelerine bakın ve bu komutları Redis ortamınızda deneyin.