memstore

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2017 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package memstore is a in-memory session store for the SCS session package.

Warning: Because memstore uses in-memory storage only, all session data will be lost when your Go program is stopped or restarted. On the upside though, it is blazingly fast.

In production, memstore should only be used where this volatility is an acceptable trade-off for the high performance, and where lost session data will have a negligible impact on users.

The memstore package provides a background 'cleanup' goroutine to delete expired session data. This stops the underlying cache from holding on to invalid sessions forever and taking up unnecessary memory.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MemStore

type MemStore struct {
	*cache.Cache
}

MemStore represents the currently configured session session store. It is essentially a wrapper around a go-cache instance (see https://github.com/patrickmn/go-cache).

func New

func New(cleanupInterval time.Duration) *MemStore

New returns a new MemStore instance.

The cleanupInterval parameter controls how frequently expired session data is removed by the background 'cleanup' goroutine. Setting it to 0 prevents the cleanup goroutine from running (i.e. expired sessions will not be removed).

func (*MemStore) Delete

func (m *MemStore) Delete(token string) error

Delete removes a session token and corresponding data from the MemStore instance.

func (*MemStore) Find

func (m *MemStore) Find(token string) (b []byte, exists bool, err error)

Find returns the data for a given session token from the MemStore instance. If the session token is not found or is expired, the returned exists flag will be set to false.

func (*MemStore) Save

func (m *MemStore) Save(token string, b []byte, expiry time.Time) error

Save adds a session token and data to the MemStore instance with the given expiry time. If the session token already exists then the data and expiry time are updated.

Jump to

Keyboard shortcuts

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