خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

3 مشتری برتر Redis برای Go Developers

با استفاده از این راه حل های محبوب، برنامه خود را با Redis ادغام کنید.

Redis یک ذخیره ساز ساختار داده در حافظه است که به طور گسترده برای ذخیره سازی، تجزیه و تحلیل بلادرنگ و کارگزاری پیام استفاده می شود. این یک انتخاب محبوب برای توسعه دهندگان به دلیل سرعت رعد و برق سریع و مجموعه ویژگی های غنی آن است.

Redis از بسیاری از ساختارهای داده از جمله رشته ها، هش ها، لیست ها، مجموعه ها و مجموعه های مرتب شده پشتیبانی می کند. همچنین پشتیبانی داخلی انتشار/اشتراک پیام رسانی، پشتیبانی تراکنش و اسکریپت نویسی Lua را ارائه می دهد.

چندین مشتری محبوب Redis برای توسعه دهندگان Go وجود دارد که هر کدام دارای ویژگی ها و عملکرد منحصر به فردی هستند. سه مشتری Redis زیر محبوب ترین در بین توسعه دهندگان Go هستند.

1. بسته go-redis

نمای کلی Go-redis github

بسته go-redis یک کتابخانه محبوب Go client برای پایگاه داده Redis است. این یک API ساده و با استفاده آسان برای تعامل با Redis ارائه می دهد و بسته از تمام دستورات Redis پشتیبانی می کند.

بسته go-redis به دلیل عملکرد، قابلیت اطمینان و رابط کاربری آسان در میان توسعه دهندگان Go محبوب است. شما این بسته را برای عملکرد از مدیریت جلسه گرفته تا ذخیره سازی، صف پیام و موارد دیگر مفید خواهید یافت.

این دستور را در ترمینال فهرست پروژه خود اجرا کنید تا بسته go-redis نصب شود.

go get github.com/go-redis/redis

در اینجا نحوه وارد کردن بسته go-redis در پروژه آمده است.

import (
  "fmt"
  "github.com/go-redis/redis"
)

ایجاد اتصال جدید به پایگاه داده Redis با بسته go-redis آسان است. شما از روش NewClient بسته redis استفاده خواهید کرد که ساختار Options را که حاوی جزئیات پیکربندی است می پذیرد.

func main() {
  client := redis.NewClient(&redis.Options{
    Addr: "localhost:6379",
    Password: " ", // no password set
  })
}

در تابع اصلی، متغیر مشتری، نمونه اتصال مشتری Redis است. می‌توانید ساختار Options را با فیلدهای Adr و Password که به ترتیب آدرس پایگاه داده و رمز عبور را نگه می‌دارند، مقداردهی اولیه کنید.

مطلب مرتبط:   نحوه کار قالب بندی رشته در Rust

هنگام ایجاد یک نمونه مشتری Redis، می‌توانید پایگاه داده را برای تأیید ارتباط خود با روش Ping پینگ کنید. می توانید از روش Result در روش Ping استفاده کنید که وضعیت و خطا را برمی گرداند.

pong, err := client.Ping().Result()

if err != nil {
  fmt.Println(err)
  return
}

fmt.Println(pong, err)

با متد Set نمونه مشتری خود می توانید یک جفت کلید-مقدار به پایگاه داده خود اضافه کنید. استفاده از روش Err در یک عملیات خطایی را برمی‌گرداند که می‌توانید با آن مقابله کنید.

// Set a key
err = client.Set("key", "value", 0).Err()

if err != nil {
   fmt.Println(err)
   return
}

می توانید با استفاده از روش Get نمونه مشتری خود، مقداری را از پایگاه داده با کلید بازیابی کنید. استفاده از روش Result روی یک عملیات، نتیجه عملیات و یک خطا را برمی گرداند.

// Get a key
val, err := client.Get("key").Result()

if err != nil {
  fmt.Println(err)
  return
}

fmt.Println("key", val)

2. بسته رادیکس

نمای کلی بسته Radixx Github

بسته Radix یک کتابخانه است که یک کلاینت برای ذخیره ساختار داده در حافظه Redis فراهم می کند. بسته Radix بسته Redigo را خلاصه می کند تا یک API با استفاده آسان برای تعامل با Redis ارائه دهد.

بسته Radix از تمام دستورات Redis پشتیبانی می کند، از جمله Lua scripting و Pub/Sub، ادغام اتصال و اتصالات مجدد خودکار که امکان عملیات کارآمد و انعطاف پذیر با Redis را فراهم می کند، پشتیبانی از کلاسترهای Redis شامل تقسیم شفاف و failover، و طراحی سبک وزن و کارآمد که اجازه می دهد تا برای تاخیر کم و توان عملیاتی بالا.

اگر به دنبال افزودن پشتیبانی سریع Redis به پروژه‌های Go خود هستید، بسته Radix را بسیار مفید خواهید یافت، زیرا بسته پیچیدگی‌های اساسی پروتکل Redis را خلاصه می‌کند، و ذخیره‌سازی، مدیریت جلسه و صف پیام را آسان‌تر می‌کند.

مطلب مرتبط:   روش های مختلف نوشتن عبارات شرطی در جاوا اسکریپت

این دستور را اجرا کنید تا بسته Radix نسخه سه را در فهرست کاری پروژه خود نصب کنید.

go get github.com/mediocregopher/radix/v3

در اینجا نحوه وارد کردن بسته Radix در برنامه آمده است.

import (
  "fmt"
  "github.com/mediocregopher/radix/v3"
)

برای اتصال به سرور Redis می توانید از روش Dial بسته رادیکس استفاده کنید. روش Dial نوع اتصال و آدرس سرور Redis را می پذیرد و یک نمونه اتصال و خطا را برمی گرداند.

func main() {
  //connect to redis server
  conn, err := radix.Dial("tcp", "localhost:6379")

  if err != nil {
    fmt.Println(err)
    return
  }

  defer conn.Close()
}

در تابع main یک نمونه اتصال Redis با متد Dial ایجاد کردید و اتصال را با متد Close و یک دستور defer بستند.

می توانید دستورات Redis را با متد Cmd بسته radix اجرا کنید. متد Cmd یک رابط، یک دستور و مقادیر دستور را می پذیرد.

err = conn.Do(radix.Cmd(nil, "SET", "mykey", "myvalue"))

if err != nil {
  fmt.Println("Error setting key: ", err)
} else {
  fmt.Println("Key set successfully")
}

متد Do عملیات را محصور می کند و یک خطا را برمی گرداند.

به طور مشابه، می توانید مقادیر را از پایگاه داده خود با روش FlatCmd بازیابی کنید. متد FlatCmd به یک متغیر، فرمان و کلید اشاره می کند.

var val string
err = conn.Do(radix.FlatCmd(&val, "GET", "mykey"))

if err != nil {
  fmt.Println("Error getting key: ", err)
} else {
  fmt.Println("Value of mykey is", val)
}

وقتی آن کد را اجرا می کنید، باید خروجی مشابه این را ببینید:

نتیجه عملیات Redis

3. بسته Redigo

بسته Redigo یکی دیگر از کتابخانه های محبوب Go client برای Redis است. برخلاف Radix و Go-redis، بسته Redigo یک کلاینت سبک وزن است که یک رابط ساده و کارآمد برای تعامل با Redis فراهم می کند.

یکی از نقاط قوت ردیگو عملکرد آن با وجود وزن کم است. Redigo یک API چاپ مانند با پشتیبانی از همه دستورات Redis ارائه می‌کند و این بسته معمولاً برای لوله‌گذاری، pub-sub، ادغام اتصال و سایر عملیات استفاده می‌شود.

مطلب مرتبط:   تابع enumerate() Python چه کار می کند و چگونه از آن استفاده می کنید؟

این دستور ترمینال را اجرا کنید تا بسته redigo را نصب کنید و شروع کنید.

go get github.com/gomodule/redigo/redis

در اینجا نحوه وارد کردن بسته redigo در فایل های پروژه خود آمده است.

import (
  "fmt"
  "github.com/gomodule/redigo/redis"
)

می توانید از روش Dial بسته redis برای اتصال به یک نمونه پایگاه داده Redis استفاده کنید. متد Dial یک نوع اتصال و یک آدرس می گیرد و نمونه اتصال و یک خطا را برمی گرداند.

func main() {
  // Connect to the Redis instance
  conn, err := redis.Dial("tcp", "localhost:6379")

  if err != nil {
    fmt.Println(err)
    return
  }

  defer conn.Close()
}

در تابع اصلی، شما به یک نمونه پایگاه داده Redis در حال اجرا در پورت 6379 متصل شده و اتصال را با روش Close نمونه اتصال و یک دستور defer بسته اید.

می توانید عملیات Redis را با استفاده از روش Do نمونه اتصال خود اجرا کنید. متد Do یک رابط خروجی و یک خطا برمی گرداند.

// Set the value "hello" to the key "message"
_, err = conn.Do("SET", "message", "hello")

if err != nil {
  fmt.Println(err)
  return
}

شما می توانید خروجی رشته ای از عملیات Redis را با روش String بسته redis بازیابی کنید. متد String نمونه عملیات را می گیرد و مقدار و یک خطا را برمی گرداند.

// Get the value of the key "message"
value, err := redis.String(conn.Do("GET", "message"))

if err != nil {
  fmt.Println(err)
  return
}

fmt.Println(value) // Output: "hello"

شما می توانید از پایگاه های داده SQL با Go استفاده کنید

در اکوسیستم Go از پایگاه‌های داده و فروشگاه‌های داده محبوب پشتیبانی می‌شود. Go بسته پایگاه داده/sql را به عنوان بخشی از کتابخانه استاندارد برای کار با پایگاه های داده SQL فراهم می کند.