Go 開発者向けの上位 3 つの Redis クライアント

Go 開発者向けの上位 3 つの Redis クライアント

Redis はメモリ内のデータ構造ストアであり、キャッシング、リアルタイム分析、およびメッセージ ブローカリングに広く使用されています。超高速で豊富な機能セットがあるため、開発者に人気があります。

Redis は、文字列、ハッシュ、リスト、コレクション、および並べ替えられたセットを含む多くのデータ構造をサポートしています。また、組み込みのパブリッシュ/サブスクライブ メッセージング サポート、トランザクション サポート、および Lua スクリプトも提供します。

Go 開発者向けの一般的な Redis クライアントがいくつかあり、それぞれに独自の特徴と機能があります。次の 3 つの Redis クライアントは、Go 開発者の間で最も人気があります。

1. go-redis パッケージ

Go-redis github の概要

go-redisパッケージは、Redis データベース用の一般的な Go クライアント ライブラリです。Redis と対話するためのシンプルで使いやすい API を提供し、パッケージはすべての Redis コマンドをサポートします。

go-redis パッケージは、そのパフォーマンス、信頼性、および使いやすいインターフェイスにより、Go 開発者の間で人気があります。このパッケージは、セッション管理からキャッシング、メッセージ キューイングなどの機能に役立つことがわかります。

プロジェクト ディレクトリのターミナルでこのコマンドを実行して、go-redis パッケージをインストールします。

go get github.com/go-redis/redis

プロジェクトに go-redis パッケージをインポートする方法は次のとおりです。

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

go-redis パッケージを使用して、Redis データベースへの新しい接続を簡単にインスタンス化できます。構成の詳細を含むOptions構造体を受け入れるredisパッケージのNewClientメソッドを使用します。

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

メイン関数では、client変数は Redis クライアント接続インスタンスです。データベース アドレスとパスワードをそれぞれ保持するAddrフィールドとPasswordフィールドを使用してOptions構造体を初期化できます。

Redis クライアント インスタンスの作成時に、データベースに ping を実行して、Pingメソッドで接続を確認できます。Ping メソッドでResultメソッドを使用すると、ステータスとエラーが返されます。

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 パッケージを抽象化して、Redis と対話するための使いやすい API を提供します。

Radix パッケージは、Lua スクリプトと Pub/Sub を含むすべての Redis コマンドのサポート、Redis での効率的で回復力のある操作を可能にする接続プールと自動再接続、透過的なシャーディングとフェイルオーバーを含む Redis クラスターのサポート、軽量で効率的な設計を提供します。低レイテンシと高スループットを実現します。

パッケージはRedisプロトコルの根底にある複雑さを抽象化し、キャッシング、セッション管理、およびメッセージキューイングを容易にするため、Goプロジェクトに迅速なRedisサポートを追加しようとしている場合、Radixパッケージは非常に便利です。

このコマンドを実行して、Radix パッケージ バージョン 3 をプロジェクトの作業ディレクトリにインストールします。

go get github.com/mediocregopher/radix/v3

プログラムにRadixパッケージをインポートする方法は次のとおりです。

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

radixパッケージのDialメソッドを使用して、Redis サーバーに接続できます。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()
}

メイン関数では、 Dialメソッドを使用して Redis 接続インスタンスを作成し、 Closeメソッドとdeferステートメントを使用して接続を閉じました。

radixパッケージのCmdメソッドでRedis コマンドを実行できます。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パッケージは、Redis 用のもう 1 つの一般的な Go クライアント ライブラリです。RadixGo-redisとは異なり、Redigoパッケージは、Redis とやり取りするためのシンプルで効率的なインターフェイスを提供する軽量のクライアントです。

Redigo のセールス ポイントの 1 つは、軽量でありながらそのパフォーマンスです。Redigo は、すべての Redis コマンドをサポートする print-like API を提供します。このパッケージは、パイプライン処理、pub-sub、接続プーリング、およびその他の操作に広く使用されています。

この端末コマンドを実行してredigoパッケージをインストールし、開始します。

go get github.com/gomodule/redigo/redis

プロジェクト ファイルに redigo パッケージをインポートする方法は次のとおりです。

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

redisパッケージのDialメソッドを使用して、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()
}

main関数では、ポート6379で実行されている Redis データベース インスタンスに接続し、接続インスタンスのCloseメソッドとdeferステートメントで接続を閉じました。

接続インスタンスのDoメソッドを使用して、Redis 操作を実行できます。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"

Go で SQL データベースを使用できます

Go エコシステムでは、一般的なデータベースとデータ ストアがサポートされています。Go は、SQL データベースを操作するための標準ライブラリの一部として database/sql パッケージを提供します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です