cache

package module
v1.2.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2023 License: MIT Imports: 2 Imported by: 2

README

Cache Store

Cache Store provide a way to cache web content to accelerate the speed of your site.

Memcached Cache Store Usage

import "github.com/conku/cache/memcached"

func main() {
  client := memcached.New(&Config{Hosts: []string{"127.0.0.1:11211"}, NameSpace: "qor_demo_v1"})

  // Save value `Hello World` with key `hello_world` into cache store
  err := client.Set("hello_world", "Hello World")

  // Get saved value with key `hello_world`
  result, err := client.Get("hello_world")

  // Save marshalled value of user into cache store
  err := client.Set("user", user)

  // Unmarshal saved value into user2
  err := client.Unmarshal("user", &user2)

  // Fetch saved value with key `hello_world`; if the key does not exist, the
  // returned result of `func` will be saved into cache store under passed key
  result, err := client.Fetch("hello_world", func() interface{} {
    return "..."
  })

  // Delete saved value
  err := client.Delete(key string)
}

Memory Cache Store Usage

import "github.com/conku/cache/memory"

func main() {
  client := memory.New()
  // Same API as memcached cache store
}

Redis Cache Store Usage

import "github.com/conku/cache/redis"

func main() {
  client = New(&redis.Options{Addr: "127.0.0.1:6379",
    Password: "",   // no password set
    DB:       0,    // use default DB
    PoolSize: 100,
  })
  // Same API as memcached cache store
}

License

Released under the MIT License.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CacheStoreInterface

type CacheStoreInterface interface {
	Get(key string) (string, error)
	Unmarshal(key string, object interface{}) error
	Set(key string, value interface{}) error
	Fetch(key string, fc func() interface{}) (string, error)
	Delete(key string) error
}

type RedisStoreInterface

type RedisStoreInterface interface {
	Keys(pattern string) ([]string, error)
	GetByte(key string) ([]byte, error)
	Get(key string) (string, error)
	IncrBy(key string, value int64) (int64, error)
	DecrBy(key string, value int64) (int64, error)
	Unmarshal(key string, object interface{}) error
	Set(key string, value interface{}) error
	Fetch(key string, fc func() interface{}) (string, error)
	Delete(key string) error
	RPush(key string, value ...interface{}) error
	LPop(key string) (string, error)
	Del(key ...string) error
	LRem(key string, value interface{}) error
	LRange(key string) ([]string, error)
	LPush(key string, value interface{}) error
	LLen(key string) (int64, error)
	LIndex(key string, index int64) (string, error)
	HSet(key string, field string, value interface{}) error
	HMSet(key string, fields map[string]interface{}) error
	HGet(key string, field string) (string, error)
	HLen(key string) (int64, error)
	HDel(key string, field string) error
	HExists(key string, field string) (bool, error)
	HGetall(key string) (map[string]string, error)
	SIsMember(key string, field string) (bool, error)
	SMembers(key string) ([]string, error)
	SRem(key string, value ...interface{}) error
	Scan(cursor uint64, match string, count int64) ([]string, uint64, error)
	SAdd(key string, value ...interface{}) error
	SCard(key string) (int64, error)
	SRandMember(key string) (string, error)
	ZRangeWithScores(key string, start, stop int64) ([]redis.Z, error)
	ZAdd(key string, members ...redis.Z) error
	Expire(key string, seconds time.Duration) (bool, error)
	Do(cmd string, key string, seconds string) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL