14

私はいくつかの Go Web サービスを作成しています (また、http.ListenAndServe を使用して Go で Web サーバーを実装しています)。さまざまな HTTP リクエストで使用するためにメモリに保持したい構造体のマップがあります (おおよそのデータ サイズは 100Kb)。

Goでこれをどのように達成できますか? グローバル パッケージ変数またはキャッシュ システム (memcache/groupcache など) を使用することを考えています。

4

2 に答える 2

2

時期尚早の最適化に夢中にならないでください。データをカプセル化する Go パッケージ API を定義すると、いつでも実装を変更できます。例えばただの落書き、

package data

type Key struct {
    // . . .
}

type Data struct {
    // . . .
}

var dataMap map[Key]Data

func init() {
    dataMap = make(map[Key]Data)
}

func GetData(key Key) (*Data, error) {
    data := dataMap[key]
    return &data, nil
}
于 2013-08-28T12:54:41.303 に答える