Go 開発者向けの上位 3 つの Redis クライアント
Redis はメモリ内のデータ構造ストアであり、キャッシング、リアルタイム分析、およびメッセージ ブローカリングに広く使用されています。超高速で豊富な機能セットがあるため、開発者に人気があります。
Redis は、文字列、ハッシュ、リスト、コレクション、および並べ替えられたセットを含む多くのデータ構造をサポートしています。また、組み込みのパブリッシュ/サブスクライブ メッセージング サポート、トランザクション サポート、および Lua スクリプトも提供します。
Go 開発者向けの一般的な Redis クライアントがいくつかあり、それぞれに独自の特徴と機能があります。次の 3 つの Redis クライアントは、Go 開発者の間で最も人気があります。
1. go-redis パッケージ
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.基数パッケージ
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)
}
そのコードを実行すると、次のような出力が表示されます。
3. Redigo パッケージ
Redigoパッケージは、Redis 用のもう 1 つの一般的な Go クライアント ライブラリです。RadixやGo-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 パッケージを提供します。
コメントを残す