Golang プロジェクトで Redis キャッシュを使用する手順: 依存関係のインストール: go get github.com/go-redis/redis/v9 Redis クライアントの作成: redis.NewClient(&redis.Options{}) キーと値のペアの設定: client.Set ( context.Background(), key, value, 0) キャッシュから値を取得します: client.Get(context.Background(), key)
Redis (リモート ディクショナリ サーバー) は、キャッシュ目的に最適なメモリ内データ構造ストレージです。 Golang プロジェクトで Redis を使用すると、パフォーマンスが大幅に向上し、応答時間が短縮されます。
Redis の使用を開始する前に、プロジェクトに依存関係をインストールする必要があります:
go get github.com/go-redis/redis/v9
Golang プロジェクトで Redis キャッシュを使用する方法を説明するために、簡単な例を作成してみましょう:
package main import ( "context" "fmt" "time" "github.com/go-redis/redis/v9" ) func main() { // 创建 Redis 客户端 client := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // 如果设置了密码,在这里输入 DB: 0, // 使用的数据库号 }) // 设置一个键值对 (缓存密钥为 "message") err := client.Set(context.Background(), "message", "Hello, Redis!", 0).Err() if err != nil { panic(err) } // 稍后,从缓存中获取值 val, err := client.Get(context.Background(), "message").Result() if err != nil { panic(err) } fmt.Println(val) // 输出: Hello, Redis! }
実際のアプリケーションでは、ホットニュースや製品情報など、頻繁にクエリされるデータを保存するためにキャッシュを使用できます。たとえば、電子商取引 Web サイトの場合、アイテムの詳細をキャッシュして、ユーザーがアクセスするたびにデータベースにクエリを実行することを避けることができます:
// 在数据库中获取商品详情 func getProductDetails(productId int) (*Product, error) { // 从数据库查询商品详情 product, err := db.GetProductDetails(productId) if err != nil { return nil, err } // 将详情缓存到 Redis 中,设置过期时间为 5 分钟 client.Set(context.Background(), fmt.Sprintf("product:%d", productId), product, 5*time.Minute) return product, nil } // 从 Redis 获取商品详情 func getCachedProductDetails(productId int) (*Product, error) { // 从 Redis 中获取详情 val, err := client.Get(context.Background(), fmt.Sprintf("product:%d", productId)).Result() if err != nil { if errors.Is(err, redis.Nil) { // 如果缓存中不存在,则返回 nil return nil, nil } return nil, err } // 将缓存中的 JSON 字符串反序列化为 Product 对象 product := &Product{} if err := json.Unmarshal([]byte(val), &product); err != nil { return nil, err } return product, nil } // 检查缓存中是否存在商品详情 func hasProductDetailsInCache(productId int) bool { // 检查缓存中是否存在键 return client.Exists(context.Background(), fmt.Sprintf("product:%d", productId)).Val() > 0 }
以上がGolang プロジェクトで Redis キャッシュを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。