Movatterモバイル変換


[0]ホーム

URL:


redistore

packagemodule
v0.0.0-...-7c2e20aLatest Latest
Warning

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

Go to latest
Published: Oct 14, 2025 License:MITImports:13Imported by:2

Details

Repository

github.com/no-src/redistore

Links

README

redistore

BuildLicenseGo ReferenceGo Report CardcodecovRelease

A session store backendforgorilla/sessions -src.

The redistore project is a fork ofredistore.The purpose of this fork is to replace theredigowithgo-redis as the driver of redis store.

Requirements

Depends on thego-redis Redis library.

Installation

go get -u github.com/no-src/redistore

Documentation

Available onpkg.go.dev.

Seehttps://github.com/gorilla/sessions for full documentation on underlying interface.

Example
// Fetch new store.store, err := NewRediStore(10, "tcp", ":6379", "", []byte("secret-key"))if err != nil {panic(err)}defer store.Close()// Get a session.session, err = store.Get(req, "session-key")if err != nil {log.Error(err.Error())}// Add a value.session.Values["foo"] = "bar"// Save.if err = sessions.Save(req, rsp); err != nil {t.Fatalf("Error saving session: %v", err)}// Delete session.session.Options.MaxAge = -1if err = sessions.Save(req, rsp); err != nil {t.Fatalf("Error saving session: %v", err)}// Change session storage configuration for MaxAge = 10 days.store.SetMaxAge(10 * 24 * 3600)

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

typeGobSerializer

type GobSerializer struct{}

GobSerializer uses gob package to encode the session map

func (GobSerializer)Deserialize

func (sGobSerializer) Deserialize(d []byte, ss *sessions.Session)error

Deserialize back to map[interface{}]interface{}

func (GobSerializer)Serialize

func (sGobSerializer) Serialize(ss *sessions.Session) ([]byte,error)

Serialize using gob

typeJSONSerializer

type JSONSerializer struct{}

JSONSerializer encode the session map to JSON.

func (JSONSerializer)Deserialize

func (sJSONSerializer) Deserialize(d []byte, ss *sessions.Session)error

Deserialize back to map[string]interface{}

func (JSONSerializer)Serialize

func (sJSONSerializer) Serialize(ss *sessions.Session) ([]byte,error)

Serialize to JSON. Will err if there are unmarshalable key values

typeRediStore

type RediStore struct {Client        *redis.ClientCodecs        []securecookie.CodecOptions       *sessions.Options// default configurationDefaultMaxAgeint// default Redis TTL for a MaxAge == 0 session// contains filtered or unexported fields}

RediStore stores sessions in a redis backend.

Example
// RedisStorestore, err := NewRediStore(10, "tcp", ":6379", "", []byte("secret-key"))if err != nil {panic(err)}defer store.Close()

funcNewRediStore

func NewRediStore(poolSizeint, network, address, passwordstring, keyPairs ...[]byte) (*RediStore,error)

NewRediStore returns a new RediStore.size: maximum number of idle connections.

funcNewRediStoreWithClient

func NewRediStoreWithClient(client *redis.Client, keyPairs ...[]byte) (*RediStore,error)

NewRediStoreWithClient instantiates a RediStore with a *redis.Client passed in.

funcNewRediStoreWithDB

func NewRediStoreWithDB(poolSizeint, network, address, passwordstring, dbint, keyPairs ...[]byte) (*RediStore,error)

NewRediStoreWithDB - like NewRedisStore but accepts `db` parameter to selectredis DB instead of using the default one (0)

func (*RediStore)Close

func (s *RediStore) Close()error

Close closes the underlying *redis.Client

func (*RediStore)Delete

func (s *RediStore) Delete(r *http.Request, whttp.ResponseWriter, session *sessions.Session)error

Delete removes the session from redis, and sets the cookie to expire.

WARNING: This method should be considered deprecated since it is not exposed via the gorilla/sessions interface.Set session.Options.MaxAge = -1 and call Save instead. - July 18th, 2013

func (*RediStore)Get

func (s *RediStore) Get(r *http.Request, namestring) (*sessions.Session,error)

Get returns a session for the given name after adding it to the registry.

See gorilla/sessions FilesystemStore.Get().

func (*RediStore)New

func (s *RediStore) New(r *http.Request, namestring) (*sessions.Session,error)

New returns a session for the given name without adding it to the registry.

See gorilla/sessions FilesystemStore.New().

func (*RediStore)Save

Save adds a single session to the response.

func (*RediStore)SetKeyPrefix

func (s *RediStore) SetKeyPrefix(pstring)

SetKeyPrefix set the prefix

func (*RediStore)SetMaxAge

func (s *RediStore) SetMaxAge(vint)

SetMaxAge restricts the maximum age, in seconds, of the session recordboth in database and a browser. This is to change session storage configuration.If you want just to remove session use your session `s` object and change it's`Options.MaxAge` to -1, as specified in

https://pkg.go.dev/github.com/gorilla/sessions#Options

Default is the one provided by this package value - `sessionExpire`.Set it to 0 for no restriction.Because we use `MaxAge` also in SecureCookie crypting algorithm you shoulduse this function to change `MaxAge` value.

func (*RediStore)SetMaxLength

func (s *RediStore) SetMaxLength(lint)

SetMaxLength sets RediStore.maxLength if the `l` argument is greater or equal 0maxLength restricts the maximum length of new sessions to l.If l is 0 there is no limit to the size of a session, use with caution.The default for a new RediStore is 4096. Redis allows for max.value sizes of up to 512MB (http://redis.io/topics/data-types)Default: 4096,

func (*RediStore)SetSerializer

func (s *RediStore) SetSerializer(ssSessionSerializer)

SetSerializer sets the serializer

typeSessionSerializer

type SessionSerializer interface {Deserialize(d []byte, ss *sessions.Session)errorSerialize(ss *sessions.Session) ([]byte,error)}

SessionSerializer provides an interface hook for alternative serializers

Source Files

View all Source files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f orF : Jump to
y orY : Canonical URL
go.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic.Learn more.

[8]ページ先頭

©2009-2025 Movatter.jp