Redis Kullanımı ve Golang Entegrasyonu: Docker Üzerine Redis Kurulumu ve Temel Operasyonlar
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! 🚀