1 回答

TA貢獻2039條經驗 獲得超8個贊
使用gob、json或類似的編碼包將結構值編碼為 []byte 。將 []byte 存儲在 Redis 中。獲取數據時逆向過程。
假設 Redis 客戶端具有Set和Get方法,使用 JSON 包的代碼將如下所示:
func set(c *RedisClient, key string, value interface{}) error {
? ? p, err := json.Marshal(value)
? ? if err != nil {
? ? ? ?return err
? ? }
? ? return c.Set(key, p)
}
func get(c *RedisClient, key string, dest interface{}) error {
? ? p, err := c.Get(key)
? ? if err != nil {
? ? ? ?return err
? ? }
? ? return json.Unmarshal(p, dest)
}
像這樣使用它來保存一個值:
var v someType
if err := set(c, key, v); err != nil {
? ? ?// handle error
}
并像這樣檢索一個值。請注意,指向該值的指針會傳遞給get.
var v someType
if err := get(c, key, &v); err != nil {
? ? ?// handle error
}
需要根據您使用的 Redis 客戶端調整詳細信息。
只要應用程序使用相同的類型設置和獲取給定鍵的值,這種方法就可以避免重復并且是類型安全的。
- 1 回答
- 0 關注
- 113 瀏覽
添加回答
舉報