// Put puts value into cache with key and expire time. // If expired is 0, it will be deleted by next GC operation. func (c *MysqlCacher) Put(key string, val interface{}, expire int64) error { item := &cache.Item{Val: val} data, err := cache.EncodeGob(item) if err != nil { return err } now := time.Now().Unix() if c.IsExist(key) { _, err = c.c.Exec("UPDATE cache SET data=?, created=?, expire=? WHERE `key`=?", data, now, expire, c.md5(key)) } else { _, err = c.c.Exec("INSERT INTO cache(`key`,data,created,expire) VALUES(?,?,?,?)", c.md5(key), data, now, expire) } return err }
// Put puts value into cache with key and expire time. // If expired is 0, it will be deleted by next GC operation. func (c *PostgresCacher) Put(key string, val interface{}, expire int64) error { item := &cache.Item{Val: val} data, err := cache.EncodeGob(item) if err != nil { return err } now := time.Now().Unix() if c.IsExist(key) { _, err = c.c.Exec("UPDATE cache SET data=$1, created=$2, expire=$3 WHERE key=$4", data, now, expire, c.md5(key)) } else { _, err = c.c.Exec("INSERT INTO cache(key,data,created,expire) VALUES($1,$2,$3,$4)", c.md5(key), data, now, expire) } return err }