Version: v1.5.0 Latest Latest

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

Go to latest
Published: Nov 8, 2018 License: MIT Imports: 3 Imported by: 0



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.



This section is empty.


This section is empty.


This section is empty.


type MemStore

type MemStore struct {
	// contains filtered or unexported fields

MemStore represents the currently configured session session store. It is essentially a wrapper around a go-cache instance (see

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.

Source Files

Jump to

Keyboard shortcuts

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