Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills
04.11.2024

Linux’ta Redis’te Tarama 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, tarama 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 tarama komutlarını kullanmak, hassas, kaynak optimizasyonlu veri kümesi işlemeye izin vererek veri işleme performansını artırabilir. Bu makalede, Redis’te tarama 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

Tarama Komutları Nedir?

Redis’teki tarama komutları, anahtarlar, kümeler, hash’ler ve sıralanmış kümeler üzerinde bloklama olmadan 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, tarama 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 Tarama 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.

Tarama Komutlarının Temel Sözdizimi

Her tarama komutu benzer bir sözdizimine sahiptir

SCAN cursor [MATCH pattern] [COUNT count]
  • imleç: Taramaya başlanacak konumu temsil eden bir tamsayı. Yeni bir tarama 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

Tarama 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 update
sudo apt install redis-server

CentOS/RHEL için kullanın

###ATP_PRO_NOTR_3_CODE_TAG_NOTR_ATP_PRO##

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

###ATP_PRO_NOTR_5_CODE_TAG_NOTR_ATP_PRO##

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

SCAN Komutunun Kullanılması

Örnek 1: Temel TARAMA

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

###ATP_PRO_NOTR_6_CODE_TAG_NOTR_ATP_PRO##

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

Örnek 2: Tuşları 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

###ATP_PRO_NOTR_7_CODE_TAG_NOTR_ATP_PRO##

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 COUNT 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" # Process the result as needed
cursor=$(echo "$result" | awk 'NR==1{print $1}') # Update the cursor
if [[ "$cursor" == "0" ]]; then
break  # Stop when the cursor is back to 0
fi
done

SSCAN Komutunun Kullanılması

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

SSCAN key cursor [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 buna bazı öğeler ekleyelim

SADD myset "apple"
SADD myset "banana"
SADD myset "cherry"
SADD myset "date"
SADD myset "elderberry"

Adım 2: SSCAN Komutunu Kullanın

Artık myset adında bir kümemiz olduğuna göre, elemanları arasında yineleme yapmak için SSCAN komutunu kullanabiliriz

  1. Temel SSCAN Komutu: “myset” adında bir kümeniz olduğunu varsayalım. Öğelerini taramak için
    ###ATP_PRO_NOTR_12_CODE_TAG_NOTR_ATP_PRO##
  2. MATCH Kullanımı: Bir kümedeki öğeleri bir kalıba göre filtrelemek ve “mango” kelimesini ve diğer varyasyonları içeren bazı öğeler eklemek için:
    ###ATP_PRO_NOTR_13_CODE_TAG_NOTR_ATP_PRO##
  3. Bir Küme İçindeYineleme:Bir küme içinde yineleme yapmak için bir döngü kullanabilirsiniz:

#!/bin/bash
cursor=0
echo "Scanning through myset:"
while true; do
# Scan the set
result=$(redis-cli SSCAN myset $cursor)
# Print the elements returned by SSCAN
echo "$result"
# Update the cursor for the next iteration
cursor=$(echo "$result" | awk 'NR==1{print $1}')
# Break the loop if cursor is back to 0
if [[ "$cursor" == "0" ]]; then
break
fi
done

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

  1. Komut dosyasını scan_myset.sh olarak kaydedin.
  2. Çalıştırılabilir hale getirin
    ###ATP_PRO_NOTR_15_CODE_TAG_NOTR_ATP_PRO##
  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 key cursor [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 name "John Doe"
HSET myhash age "30"
HSET myhash occupation "Software Developer"
HSET myhash city "San Francisco"
HSET myhash country "USA"

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 üyeleri bir kerede getirmenin 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 key cursor [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

###ATP_PRO_NOTR_21_CODE_TAG_NOTR_ATP_PRO##

Temel ZSCAN Komutu:Sıralanmış seti taramaya 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 çalıştırabilirsiniz

ZSCAN mysortedset 0 MATCH *e*

Tarama Komutlarını Kullanmak iç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 etkin 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 tarama mantığınızı her zaman bir geliştirme ortamında test edin.

Sonuç

Redis’te tarama 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

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills