Documentation ¶
Index ¶
- Variables
- type CachedConn
- func (cc CachedConn) DelCache(keys ...string) error
- func (cc CachedConn) DelCacheCtx(ctx context.Context, keys ...string) error
- func (cc CachedConn) Exec(exec ExecFn, keys ...string) (sql.Result, error)
- func (cc CachedConn) ExecCtx(ctx context.Context, exec ExecCtxFn, keys ...string) (sql.Result, error)
- func (cc CachedConn) ExecNoCache(q string, args ...any) (sql.Result, error)
- func (cc CachedConn) ExecNoCacheCtx(ctx context.Context, q string, args ...any) (sql.Result, error)
- func (cc CachedConn) GetCache(key string, v any) error
- func (cc CachedConn) GetCacheCtx(ctx context.Context, key string, v any) error
- func (cc CachedConn) QueryRow(v any, key string, query QueryFn) error
- func (cc CachedConn) QueryRowCtx(ctx context.Context, v any, key string, query QueryCtxFn) error
- func (cc CachedConn) QueryRowIndex(v any, key string, keyer func(primary any) string, indexQuery IndexQueryFn, ...) error
- func (cc CachedConn) QueryRowIndexCtx(ctx context.Context, v any, key string, keyer func(primary any) string, ...) error
- func (cc CachedConn) QueryRowNoCache(v any, q string, args ...any) error
- func (cc CachedConn) QueryRowNoCacheCtx(ctx context.Context, v any, q string, args ...any) error
- func (cc CachedConn) QueryRowPartialNoCache(v any, q string, args ...any) error
- func (cc CachedConn) QueryRowPartialNoCacheCtx(ctx context.Context, v any, q string, args ...any) error
- func (cc CachedConn) QueryRowsNoCache(v any, q string, args ...any) error
- func (cc CachedConn) QueryRowsNoCacheCtx(ctx context.Context, v any, q string, args ...any) error
- func (cc CachedConn) QueryRowsPartialNoCache(v any, q string, args ...any) error
- func (cc CachedConn) QueryRowsPartialNoCacheCtx(ctx context.Context, v any, q string, args ...any) error
- func (cc CachedConn) SetCache(key string, val any) error
- func (cc CachedConn) SetCacheCtx(ctx context.Context, key string, val any) error
- func (cc CachedConn) SetCacheWithExpire(key string, val any, expire time.Duration) error
- func (cc CachedConn) SetCacheWithExpireCtx(ctx context.Context, key string, val any, expire time.Duration) error
- func (cc CachedConn) Transact(fn func(sqlx.Session) error) error
- func (cc CachedConn) TransactCtx(ctx context.Context, fn func(context.Context, sqlx.Session) error) error
- func (cc CachedConn) WithSession(session sqlx.Session) CachedConn
- type ExecCtxFn
- type ExecFn
- type IndexQueryCtxFn
- type IndexQueryFn
- type PrimaryQueryCtxFn
- type PrimaryQueryFn
- type QueryCtxFn
- type QueryFn
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotFound is an alias of sqlx.ErrNotFound. ErrNotFound = sqlx.ErrNotFound )
Functions ¶
This section is empty.
Types ¶
type CachedConn ¶
type CachedConn struct {
// contains filtered or unexported fields
}
A CachedConn is a DB connection with cache capability.
func NewConnWithCache ¶
func NewConnWithCache(db sqlx.SqlConn, c cache.Cache) CachedConn
NewConnWithCache returns a CachedConn with a custom cache.
func NewNodeConn ¶
NewNodeConn returns a CachedConn with a redis node cache.
func (CachedConn) DelCache ¶
func (cc CachedConn) DelCache(keys ...string) error
DelCache deletes cache with keys.
func (CachedConn) DelCacheCtx ¶ added in v1.3.1
func (cc CachedConn) DelCacheCtx(ctx context.Context, keys ...string) error
DelCacheCtx deletes cache with keys.
func (CachedConn) ExecCtx ¶ added in v1.3.1
func (cc CachedConn) ExecCtx(ctx context.Context, exec ExecCtxFn, keys ...string) ( sql.Result, error)
ExecCtx runs given exec on given keys, and returns execution result. If DB operation succeeds, it will delete cache with given keys, if DB operation fails, it will return nil result and non-nil error, if DB operation succeeds but cache deletion fails, it will return result and non-nil error.
func (CachedConn) ExecNoCache ¶
ExecNoCache runs exec with given sql statement, without affecting cache.
func (CachedConn) ExecNoCacheCtx ¶ added in v1.3.1
func (cc CachedConn) ExecNoCacheCtx(ctx context.Context, q string, args ...any) ( sql.Result, error)
ExecNoCacheCtx runs exec with given sql statement, without affecting cache.
func (CachedConn) GetCache ¶
func (cc CachedConn) GetCache(key string, v any) error
GetCache unmarshals cache with given key into v.
func (CachedConn) GetCacheCtx ¶ added in v1.3.1
GetCacheCtx unmarshals cache with given key into v.
func (CachedConn) QueryRow ¶
func (cc CachedConn) QueryRow(v any, key string, query QueryFn) error
QueryRow unmarshals into v with given key and query func.
func (CachedConn) QueryRowCtx ¶ added in v1.3.1
func (cc CachedConn) QueryRowCtx(ctx context.Context, v any, key string, query QueryCtxFn) error
QueryRowCtx unmarshals into v with given key and query func.
func (CachedConn) QueryRowIndex ¶
func (cc CachedConn) QueryRowIndex(v any, key string, keyer func(primary any) string, indexQuery IndexQueryFn, primaryQuery PrimaryQueryFn) error
QueryRowIndex unmarshals into v with given key.
func (CachedConn) QueryRowIndexCtx ¶ added in v1.3.1
func (cc CachedConn) QueryRowIndexCtx(ctx context.Context, v any, key string, keyer func(primary any) string, indexQuery IndexQueryCtxFn, primaryQuery PrimaryQueryCtxFn) error
QueryRowIndexCtx unmarshals into v with given key.
func (CachedConn) QueryRowNoCache ¶
func (cc CachedConn) QueryRowNoCache(v any, q string, args ...any) error
QueryRowNoCache unmarshals into v with given statement.
func (CachedConn) QueryRowNoCacheCtx ¶ added in v1.3.1
QueryRowNoCacheCtx unmarshals into v with given statement.
func (CachedConn) QueryRowPartialNoCache ¶ added in v1.7.0
func (cc CachedConn) QueryRowPartialNoCache(v any, q string, args ...any) error
QueryRowPartialNoCache unmarshals into v with given statement.
func (CachedConn) QueryRowPartialNoCacheCtx ¶ added in v1.7.0
func (cc CachedConn) QueryRowPartialNoCacheCtx(ctx context.Context, v any, q string, args ...any) error
QueryRowPartialNoCacheCtx unmarshals into v with given statement.
func (CachedConn) QueryRowsNoCache ¶
func (cc CachedConn) QueryRowsNoCache(v any, q string, args ...any) error
QueryRowsNoCache unmarshals into v with given statement. It doesn't use cache, because it might cause consistency problem.
func (CachedConn) QueryRowsNoCacheCtx ¶ added in v1.3.1
QueryRowsNoCacheCtx unmarshals into v with given statement. It doesn't use cache, because it might cause consistency problem.
func (CachedConn) QueryRowsPartialNoCache ¶ added in v1.7.0
func (cc CachedConn) QueryRowsPartialNoCache(v any, q string, args ...any) error
QueryRowsPartialNoCache unmarshals into v with given statement. It doesn't use cache, because it might cause consistency problem.
func (CachedConn) QueryRowsPartialNoCacheCtx ¶ added in v1.7.0
func (cc CachedConn) QueryRowsPartialNoCacheCtx(ctx context.Context, v any, q string, args ...any) error
QueryRowsPartialNoCacheCtx unmarshals into v with given statement. It doesn't use cache, because it might cause consistency problem.
func (CachedConn) SetCache ¶
func (cc CachedConn) SetCache(key string, val any) error
SetCache sets v into cache with given key.
func (CachedConn) SetCacheCtx ¶ added in v1.3.1
SetCacheCtx sets v into cache with given key.
func (CachedConn) SetCacheWithExpire ¶ added in v1.5.3
SetCacheWithExpire sets v into cache with given key with given expire.
func (CachedConn) SetCacheWithExpireCtx ¶ added in v1.5.3
func (cc CachedConn) SetCacheWithExpireCtx(ctx context.Context, key string, val any, expire time.Duration) error
SetCacheWithExpireCtx sets v into cache with given key with given expire.
func (CachedConn) Transact ¶
func (cc CachedConn) Transact(fn func(sqlx.Session) error) error
Transact runs given fn in transaction mode.
func (CachedConn) TransactCtx ¶ added in v1.3.1
func (cc CachedConn) TransactCtx(ctx context.Context, fn func(context.Context, sqlx.Session) error) error
TransactCtx runs given fn in transaction mode.
func (CachedConn) WithSession ¶ added in v1.5.3
func (cc CachedConn) WithSession(session sqlx.Session) CachedConn
WithSession returns a new CachedConn with given session. If query from session, the uncommitted data might be returned. Don't query for the uncommitted data, you should just use it, and don't use the cache for the uncommitted data. Not recommend to use cache within transactions due to consistency problem.
type IndexQueryCtxFn ¶ added in v1.3.1
IndexQueryCtxFn defines the query method that based on unique indexes.
type IndexQueryFn ¶
IndexQueryFn defines the query method that based on unique indexes.
type PrimaryQueryCtxFn ¶ added in v1.3.1
PrimaryQueryCtxFn defines the query method that based on primary keys.
type PrimaryQueryFn ¶
PrimaryQueryFn defines the query method that based on primary keys.
type QueryCtxFn ¶ added in v1.3.1
QueryCtxFn defines the query method.