This commit is contained in:
Fenny
2020-11-05 07:07:30 +01:00
parent 67a47c821d
commit 253ac9bb10
3 changed files with 25 additions and 20 deletions

View File

@@ -28,7 +28,12 @@ var ErrNotExist = errors.New("key does not exist")
var ( var (
dropQuery = "DROP TABLE IF EXISTS %s;" dropQuery = "DROP TABLE IF EXISTS %s;"
initQuery = []string{ initQuery = []string{
"CREATE TABLE IF NOT EXISTS %s ( `id` VARCHAR(64) NOT NULL DEFAULT '' , `data` TEXT NOT NULL , `exp` BIGINT NOT NULL DEFAULT '0' , PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;", `CREATE TABLE IF NOT EXISTS %s (
k VARCHAR(64) NOT NULL DEFAULT '',
v TEXT NOT NULL,
e BIGINT NOT NULL DEFAULT '0',
PRIMARY KEY (k)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;`,
} }
) )
@@ -75,11 +80,11 @@ func New(config ...Config) *Storage {
store := &Storage{ store := &Storage{
gcInterval: cfg.GCInterval, gcInterval: cfg.GCInterval,
db: db, db: db,
sqlSelect: fmt.Sprintf("SELECT data, exp FROM %s WHERE id=?;", cfg.Table), sqlSelect: fmt.Sprintf("SELECT v, e FROM %s WHERE k=?;", cfg.Table),
sqlInsert: fmt.Sprintf("INSERT INTO %s (id, data, exp) VALUES (?,?,?) ON DUPLICATE KEY UPDATE data = ?, exp = ?", cfg.Table), sqlInsert: fmt.Sprintf("INSERT INTO %s (k, v, e) VALUES (?,?,?) ON DUPLICATE KEY UPDATE v = ?, e = ?", cfg.Table),
sqlDelete: fmt.Sprintf("DELETE FROM %s WHERE id=?", cfg.Table), sqlDelete: fmt.Sprintf("DELETE FROM %s WHERE id=?", cfg.Table),
sqlClear: fmt.Sprintf("DELETE FROM %s;", cfg.Table), sqlClear: fmt.Sprintf("DELETE FROM %s;", cfg.Table),
sqlGC: fmt.Sprintf("DELETE FROM %s WHERE exp <= ?", cfg.Table), sqlGC: fmt.Sprintf("DELETE FROM %s WHERE e <= ?", cfg.Table),
} }
// Start garbage collector // Start garbage collector

View File

@@ -30,11 +30,11 @@ var (
dropQuery = `DROP TABLE IF EXISTS %s;` dropQuery = `DROP TABLE IF EXISTS %s;`
initQuery = []string{ initQuery = []string{
`CREATE TABLE IF NOT EXISTS %s ( `CREATE TABLE IF NOT EXISTS %s (
key VARCHAR(64) PRIMARY KEY NOT NULL DEFAULT '', k VARCHAR(64) PRIMARY KEY NOT NULL DEFAULT '',
data TEXT NOT NULL, v TEXT NOT NULL,
exp BIGINT NOT NULL DEFAULT '0' e BIGINT NOT NULL DEFAULT '0'
);`, );`,
`CREATE INDEX IF NOT EXISTS exp ON %s (exp);`, `CREATE INDEX IF NOT EXISTS e ON %s (e);`,
} }
) )
@@ -98,11 +98,11 @@ func New(config ...Config) *Storage {
store := &Storage{ store := &Storage{
db: db, db: db,
gcInterval: cfg.GCInterval, gcInterval: cfg.GCInterval,
sqlSelect: fmt.Sprintf(`SELECT data, exp FROM %s WHERE key=$1;`, cfg.Table), sqlSelect: fmt.Sprintf(`SELECT v, e FROM %s WHERE k=$1;`, cfg.Table),
sqlInsert: fmt.Sprintf(`INSERT INTO %s (key, data, exp) VALUES ($1, $2, $3)`, cfg.Table), sqlInsert: fmt.Sprintf(`INSERT INTO %s (k, v, e) VALUES ($1, $2, $3)`, cfg.Table),
sqlDelete: fmt.Sprintf("DELETE FROM %s WHERE key=$1", cfg.Table), sqlDelete: fmt.Sprintf("DELETE FROM %s WHERE k=$1", cfg.Table),
sqlClear: fmt.Sprintf("DELETE FROM %s;", cfg.Table), sqlClear: fmt.Sprintf("DELETE FROM %s;", cfg.Table),
sqlGC: fmt.Sprintf("DELETE FROM %s WHERE exp <= $1", cfg.Table), sqlGC: fmt.Sprintf("DELETE FROM %s WHERE e <= $1", cfg.Table),
} }
// Start garbage collector // Start garbage collector

View File

@@ -30,11 +30,11 @@ var (
dropQuery = `DROP TABLE IF EXISTS %s;` dropQuery = `DROP TABLE IF EXISTS %s;`
initQuery = []string{ initQuery = []string{
`CREATE TABLE IF NOT EXISTS %s ( `CREATE TABLE IF NOT EXISTS %s (
key VARCHAR(64) PRIMARY KEY NOT NULL DEFAULT '', k VARCHAR(64) PRIMARY KEY NOT NULL DEFAULT '',
data TEXT NOT NULL, v TEXT NOT NULL,
exp BIGINT NOT NULL DEFAULT '0' e BIGINT NOT NULL DEFAULT '0'
);`, );`,
`CREATE INDEX IF NOT EXISTS exp ON %s (exp);`, `CREATE INDEX IF NOT EXISTS e ON %s (e);`,
} }
) )
@@ -80,11 +80,11 @@ func New(config ...Config) *Storage {
store := &Storage{ store := &Storage{
db: db, db: db,
gcInterval: cfg.GCInterval, gcInterval: cfg.GCInterval,
sqlSelect: fmt.Sprintf(`SELECT data, exp FROM %s WHERE key=?;`, cfg.Table), sqlSelect: fmt.Sprintf(`SELECT v, e FROM %s WHERE k=?;`, cfg.Table),
sqlInsert: fmt.Sprintf("INSERT OR REPLACE INTO %s (key, data, exp) VALUES (?,?,?)", cfg.Table), sqlInsert: fmt.Sprintf("INSERT OR REPLACE INTO %s (k, v, e) VALUES (?,?,?)", cfg.Table),
sqlDelete: fmt.Sprintf("DELETE FROM %s WHERE key=?", cfg.Table), sqlDelete: fmt.Sprintf("DELETE FROM %s WHERE k=?", cfg.Table),
sqlClear: fmt.Sprintf("DELETE FROM %s;", cfg.Table), sqlClear: fmt.Sprintf("DELETE FROM %s;", cfg.Table),
sqlGC: fmt.Sprintf("DELETE FROM %s WHERE exp <= ?", cfg.Table), sqlGC: fmt.Sprintf("DELETE FROM %s WHERE e <= ?", cfg.Table),
} }
// Start garbage collector // Start garbage collector