Redis Kullanımı ve Golang Entegrasyonu: Docker Üzerine Redis Kurulumu ve Temel Operasyonlar

MuharremCandan
2 min readJan 26, 2024

Merhaba Medium Okurları!

Bu yazıda, Redis veritabanını Docker üzerinde nasıl kurabileceğimizi ve ardından Golang ile nasıl entegre edebileceğimizi adım adım öğreneceğiz.

Redis: Hızlı ve Esnek

Anahtar-Değer Veritabanı

Redis, hafıza tabanlı bir anahtar-değer veritabanıdır. Bellekteki verileri hızlı bir şekilde depolayarak yüksek performans sağlar. Web uygulamalarında önbellek, gerçek zamanlı analitikler ve sıralı veri yapıları için ideal bir tercihtir. Basit, hızlı ve esnek yapısıyla çeşitli kullanım alanlarına hitap eder. Yüksek erişilebilirlik ve dayanıklılık özellikleriyle güvenilir veri depolama çözümü sunar. Redis, hız gerektiren uygulamalarda veri yönetimini optimize etmek isteyenler için ideal bir tercihtir.

Docker Üzerine Redis Kurulumu

Öncelikle, Redis’i Docker üzerinde çalıştıralım. Aşağıdaki komut ile Redis konteynerini başlatabiliriz (Docker’ın bilgisayarımızda kurulu olması gereklidir):

docker run --name redisapp -p 6379:6379 redis

Ardından Redis CLI’ına aşağıdaki komut ile erişebiliriz:

docker exec -it redisapp redis-cli

Redis Komutları

Redis CLI üzerinden bazı temel komutları kullanarak Redis’in işleyişini anlayalım:

  • keys *: Tüm anahtarları listeler.
  • set name muharrem: "name" anahtarına "muharrem" değerini atar.
  • get name: "name" anahtarının değerini getirir.
  • hset user name muharrem: "user" anahtarı altında "name" alt anahtarına "muharrem" değerini atar.
  • hgetall user: "user" anahtarındaki tüm alt anahtarları ve değerleri getirir.

Golang ile Redis Bağlantısı

Golang’da Redis ile iletişim kurmak için github.com/go-redis/redis paketini kullanabiliriz. Aşağıda, Redis'e bağlanma ve bir ping gönderme işlemi gerçekleştiren bir örnek Golang kodu bulunmaktadır:

package main

import (
"context"
"encoding/json"
"log"

"github.com/go-redis/redis/v8"
)

func main() {
// Redis'e bağlanma
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // Şifre yok
DB: 0, // Default DB kullanılıyor
})

// Yeni bir bağlam oluşturma
ctx := context.Background()

// Sunucuya ping gönderme
pong, err := client.Ping(ctx).Result()
log.Println(pong, err)

// Örnek bir kullanıcı listesi
users := []string{"user1", "user2", "user3"}

// Kullanıcıları Redis'e ekleme
marshallData, err := json.Marshal(users)
if err != nil {
panic(err)
}

err = client.HSet(ctx, "user-session", "my-users", marshallData).Err()
if err != nil {
panic(err)
}

// Redis'ten kullanıcıları alma
data := client.HGetAll(ctx, "user-session").Val()
log.Println(data)
}

Bu kod, Golang ile Redis entegrasyonunu sağlamak için basit bir başlangıç noktasıdır. Siz de projenize uygun şekilde bu örneği genişletebilir ve geliştirebilirsiniz.

Umarım bu yazı, Redis ve Golang kullanımı konusundaki temel bilgilerinizi artırmanıza yardımcı olur. İyi kodlamalar! 🚀

--

--

MuharremCandan
MuharremCandan

Written by MuharremCandan

Hayalleri hayatının kaptanlığını yapan, limandan daha taptaze yazılım serüvenine yelken açan bir gemide Miço.

No responses yet