Documentation ¶
Overview ¶
gsession 包实现了会话的管理与存储功能。 md5:743dbbcf3d74735d
Index ¶
- Constants
- Variables
- func NewSessionId() string
- type Storage
- type X结构_Manager
- type X结构_Session
- func (s *X结构_Session) Close() error
- func (s *X结构_Session) Contains(key string) (ok bool, err error)
- func (s *X结构_Session) Data() (sessionData map[string]interface{}, err error)
- func (s *X结构_Session) Get(key string, def ...interface{}) (value *gvar.X结构_泛型类, err error)
- func (s *X结构_Session) Id() (id string, err error)
- func (s *X结构_Session) IsDirty() bool
- func (s *X结构_Session) MustContains(key string) bool
- func (s *X结构_Session) MustData() map[string]interface{}
- func (s *X结构_Session) MustGet(key string, def ...interface{}) *gvar.X结构_泛型类
- func (s *X结构_Session) MustId() string
- func (s *X结构_Session) MustRemove(keys ...string)
- func (s *X结构_Session) MustSet(key string, value interface{})
- func (s *X结构_Session) MustSetMap(data map[string]interface{})
- func (s *X结构_Session) MustSize() int
- func (s *X结构_Session) Remove(keys ...string) (err error)
- func (s *X结构_Session) RemoveAll() (err error)
- func (s *X结构_Session) SetId(id string) error
- func (s *X结构_Session) SetIdFunc(f func(ttl time.Duration) string) error
- func (s *X结构_Session) SetMap(data map[string]interface{}) (err error)
- func (s *X结构_Session) Size() (size int, err error)
- func (s *X结构_Session) X设置值(key string, value interface{}) (err error)
- type X结构_StorageBase
- func (s *X结构_StorageBase) Data(ctx context.Context, sessionId string) (sessionData map[string]interface{}, err error)
- func (s *X结构_StorageBase) Get(ctx context.Context, sessionId string, key string) (value interface{}, err error)
- func (s *X结构_StorageBase) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.X结构_StrAnyMap, error)
- func (s *X结构_StorageBase) GetSize(ctx context.Context, sessionId string) (size int, err error)
- func (s *X结构_StorageBase) New(ctx context.Context, ttl time.Duration) (id string, err error)
- func (s *X结构_StorageBase) Remove(ctx context.Context, sessionId string, key string) error
- func (s *X结构_StorageBase) RemoveAll(ctx context.Context, sessionId string) error
- func (s *X结构_StorageBase) SetMap(ctx context.Context, sessionId string, mapData map[string]interface{}, ...) error
- func (s *X结构_StorageBase) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ...) error
- func (s *X结构_StorageBase) UpdateTTL(ctx context.Context, sessionId string, ttl time.Duration) error
- func (s *X结构_StorageBase) X设置值(ctx context.Context, sessionId string, key string, value interface{}, ...) error
- type X结构_StorageFile
- func (s *X结构_StorageFile) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (sessionData *gmap.X结构_StrAnyMap, err error)
- func (s *X结构_StorageFile) RemoveAll(ctx context.Context, sessionId string) error
- func (s *X结构_StorageFile) SetCryptoEnabled(enabled bool)
- func (s *X结构_StorageFile) SetCryptoKey(key []byte)
- func (s *X结构_StorageFile) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ...) error
- func (s *X结构_StorageFile) UpdateTTL(ctx context.Context, sessionId string, ttl time.Duration) error
- type X结构_StorageMemory
- func (s *X结构_StorageMemory) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.X结构_StrAnyMap, error)
- func (s *X结构_StorageMemory) RemoveAll(ctx context.Context, sessionId string) error
- func (s *X结构_StorageMemory) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ...) error
- func (s *X结构_StorageMemory) UpdateTTL(ctx context.Context, sessionId string, ttl time.Duration) error
- type X结构_StorageRedis
- func (s *X结构_StorageRedis) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.X结构_StrAnyMap, error)
- func (s *X结构_StorageRedis) RemoveAll(ctx context.Context, sessionId string) error
- func (s *X结构_StorageRedis) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ...) error
- func (s *X结构_StorageRedis) UpdateTTL(ctx context.Context, sessionId string, ttl time.Duration) error
- type X结构_StorageRedisHashTable
- func (s *X结构_StorageRedisHashTable) Data(ctx context.Context, sessionId string) (data map[string]interface{}, err error)
- func (s *X结构_StorageRedisHashTable) Get(ctx context.Context, sessionId string, key string) (value interface{}, err error)
- func (s *X结构_StorageRedisHashTable) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.X结构_StrAnyMap, error)
- func (s *X结构_StorageRedisHashTable) GetSize(ctx context.Context, sessionId string) (size int, err error)
- func (s *X结构_StorageRedisHashTable) Remove(ctx context.Context, sessionId string, key string) error
- func (s *X结构_StorageRedisHashTable) RemoveAll(ctx context.Context, sessionId string) error
- func (s *X结构_StorageRedisHashTable) SetMap(ctx context.Context, sessionId string, data map[string]interface{}, ...) error
- func (s *X结构_StorageRedisHashTable) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ...) error
- func (s *X结构_StorageRedisHashTable) UpdateTTL(ctx context.Context, sessionId string, ttl time.Duration) error
- func (s *X结构_StorageRedisHashTable) X设置值(ctx context.Context, sessionId string, key string, value interface{}, ...) error
Examples ¶
Constants ¶
const ( X常量_DefaultStorageFileCryptoEnabled = false X常量_DefaultStorageFileUpdateTTLInterval = 10 * time.Second X常量_DefaultStorageFileClearExpiredInterval = time.Hour )
const ( // X常量_DefaultStorageRedisLoopInterval 是用于在最近一段时间内更新会话ID的TTL(生存时间)的间隔。 // md5:5adbee0aa8ff1658 X常量_DefaultStorageRedisLoopInterval = 10 * time.Second )
Variables ¶
var ( DefaultStorageFilePath = gfile.X取临时目录("gsessions") DefaultStorageFileCryptoKey = []byte("Session storage file crypto key!") )
var ( // ErrorDisabled 用于标记某些接口函数未被使用。 md5:2a81adf17310353b ErrorDisabled = gerror.NewWithOption(gerror.X结构_选项{ Text: "此存储中已禁用此功能", Code: gcode.X变量_CodeNotSupported, }) )
Functions ¶
func NewSessionId ¶
func NewSessionId() string
NewSessionId 创建并返回一个新的、唯一的会话ID字符串,该字符串长度为32字节。 md5:c16016979687f8e5
Types ¶
type Storage ¶
type Storage interface { // New 创建一个自定义会话ID。 // 此函数可用于自定义会话创建。 // md5:bf8b403018c5c6df New(ctx context.Context, ttl time.Duration) (sessionId string, err error) // Get 通过给定的键获取并返回会话中的特定值。 // 如果键在会话中不存在,则返回nil。 // md5:2584a452a5632118 Get(ctx context.Context, sessionId string, key string) (value interface{}, err error) // GetSize 从存储中获取并返回键值对的大小。 md5:2c41726f18e2cd04 GetSize(ctx context.Context, sessionId string) (size int, err error) // Data 从存储中获取所有的键值对并将其作为映射返回。 md5:7160c6695dcc211b Data(ctx context.Context, sessionId string) (sessionData map[string]interface{}, err error) // X设置值 将一个键值对设置到存储中。 // 参数 `ttl` 指定了会话 ID 的过期时间。 // md5:f141e9b5de211364 X设置值(ctx context.Context, sessionId string, key string, value interface{}, ttl time.Duration) error // SetMap 批量将键值对设置为存储中的会话映射。参数 `ttl` 指定会话 ID 的过期时间。 // md5:be3d6b9412b66e49 SetMap(ctx context.Context, sessionId string, mapData map[string]interface{}, ttl time.Duration) error // Remove 从存储中删除指定会话中的键值对。 md5:3887f6d1acd56ad6 Remove(ctx context.Context, sessionId string, key string) error // RemoveAll 从存储中删除会话。 md5:488d9f9ca747e8e4 RemoveAll(ctx context.Context, sessionId string) error // GetSession 从存储中返回给定会话的数据,数据类型为 `*gmap.StrAnyMap`。 // // 参数 `ttl` 指定了该会话的生存时间(TTL)。 // 参数 `data` 是当前存储在内存中的旧会话数据,对于某些存储,如果禁用了内存存储,此参数可能为 `nil`。 // // 这个函数会在每次会话开始时被调用。 // 如果会话不存在或者其 TTL 已过期,它将返回 `nil`。 // md5:a495b20f42259c94 GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.X结构_StrAnyMap, error) // SetSession 更新指定会话ID的数据。 // 在关闭已更改的会话后,都会调用此函数。这个函数将内存中的所有会话数据映射复制到存储中。 // md5:16766d7e58c61924 SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ttl time.Duration) error // UpdateTTL 更新指定会话ID的TTL(时间到 live)。 // 在非脏会话关闭后,将调用此函数。 // md5:29eae01946af2846 UpdateTTL(ctx context.Context, sessionId string, ttl time.Duration) error }
Storage是会话存储的接口定义。 md5:3c03cfdd3299edcc
type X结构_Manager ¶
type X结构_Manager struct {
// contains filtered or unexported fields
}
X结构_Manager for sessions.
func New ¶
func New(ttl time.Duration, storage ...Storage) *X结构_Manager
New 创建并返回一个新的会话管理器。 md5:f41a96ed9e4273e4
Example ¶
package main import ( "fmt" "time" gsession "gitee.com/go_888/goframe/os/gsession" ) func main() { manager := gsession.New(time.Second) fmt.Println(manager.GetTTL()) }
Output: 1s
func (*X结构_Manager) GetStorage ¶
func (m *X结构_Manager) GetStorage() Storage
GetStorage 返回当前会话管理器的存储对象。 md5:43cdd2b5155f8389
func (*X结构_Manager) GetTTL ¶
func (m *X结构_Manager) GetTTL() time.Duration
GetTTL 返回会话管理器的TTL(时间到 live,生存时间)。 md5:d0733ac8b424fbe1
func (*X结构_Manager) New ¶
func (m *X结构_Manager) New(ctx context.Context, sessionId ...string) *X结构_Session
New 为给定的 session ID 创建或获取会话。 参数 `sessionId` 是可选的,如果未提供,则根据 Storage.New 的行为创建新的会话。 md5:4d84930c3cbf9027
func (*X结构_Manager) SetStorage ¶
func (m *X结构_Manager) SetStorage(storage Storage)
SetStorage 设置管理器的会话存储。 md5:9fe6b2a9a6ae9990
func (*X结构_Manager) SetTTL ¶
func (m *X结构_Manager) SetTTL(ttl time.Duration)
SetTTL 设置会话管理器的生存时间(TTL)。 md5:bba913d23693cf2a
type X结构_Session ¶
type X结构_Session struct {
// contains filtered or unexported fields
}
X结构_Session 结构体,用于存储单个会话数据,它与单个请求绑定。X结构_Session 结构体是与用户交互的接口,但 Storage 是底层适配器设计的接口,用于实现特定功能。 md5:1d1b86dcb53a276e
func (*X结构_Session) Close ¶
func (s *X结构_Session) Close() error
Close 方法关闭当前会话并在会话管理器中更新其TTL(生存时间)。 如果此会话已被修改(脏会话),它还会将该会话导出到存储中。
注意:此功能必须在每次会话请求完成后调用。 md5:f68a83f493f4727a
func (*X结构_Session) Contains ¶
func (s *X结构_Session) Contains(key string) (ok bool, err error)
Contains 检查键是否存在于会话中。 md5:7a03d1ea75cda393
func (*X结构_Session) Data ¶
func (s *X结构_Session) Data() (sessionData map[string]interface{}, err error)
Data 将所有数据作为映射返回。 请注意,为了并发安全,它内部使用了值拷贝。 md5:a37827aba4dd5df4
func (*X结构_Session) Get ¶
func (s *X结构_Session) Get(key string, def ...interface{}) (value *gvar.X结构_泛型类, err error)
Get 通过给定的键获取 session 值。 如果键在 session 中不存在且提供了 `def`,则返回 `def`, 否则返回 nil。 md5:893a612d87b25ee2
func (*X结构_Session) Id ¶
func (s *X结构_Session) Id() (id string, err error)
Id 返回此会话的会话标识符。 如果在初始化时未传递会话标识符,则创建并返回新的会话标识符。 md5:c1a4c6b98633e656
func (*X结构_Session) IsDirty ¶
func (s *X结构_Session) IsDirty() bool
IsDirty 检查会话中是否有数据变更。 md5:2a726ce013b067fe
func (*X结构_Session) MustContains ¶
func (s *X结构_Session) MustContains(key string) bool
MustContains执行Contains函数的功能,但如果发生任何错误,它将引发恐慌。 md5:b9f29f0374157bc5
func (*X结构_Session) MustData ¶
func (s *X结构_Session) MustData() map[string]interface{}
MustData 执行与函数 Data 相同的操作,但如果发生任何错误,它将引发恐慌。 md5:ae01e79f6f27c9fe
func (*X结构_Session) MustGet ¶
func (s *X结构_Session) MustGet(key string, def ...interface{}) *gvar.X结构_泛型类
MustGet执行与Get相同的功能,但如果发生任何错误,它将引发恐慌。 md5:bdc72a85510733d5
func (*X结构_Session) MustId ¶
func (s *X结构_Session) MustId() string
MustId 行为就像Id函数一样,但如果发生任何错误,它会引发恐慌。 md5:a51e8673adaf6727
func (*X结构_Session) MustRemove ¶
func (s *X结构_Session) MustRemove(keys ...string)
MustRemove 行为与函数 Remove 相同,但如果发生任何错误则会引发恐慌。 md5:76bd8c9cb1e6223b
func (*X结构_Session) MustSet ¶
func (s *X结构_Session) MustSet(key string, value interface{})
MustSet 的功能与 Set 函数相同,但如果发生任何错误,它会直接 panic。 md5:06fa308e1636bcfa
func (*X结构_Session) MustSetMap ¶
func (s *X结构_Session) MustSetMap(data map[string]interface{})
MustSetMap 行为类似于函数 SetMap,但如果发生任何错误则会引发 panic。 md5:3d54948e22292bcf
func (*X结构_Session) MustSize ¶
func (s *X结构_Session) MustSize() int
MustSize 的行为与 Size 函数相同,但如果发生任何错误,它会直接 panic。 md5:d9d8c4724cdd0db4
func (*X结构_Session) Remove ¶
func (s *X结构_Session) Remove(keys ...string) (err error)
Remove 从本次会话中移除指定的键及其对应的值。 md5:3dc440da200c0834
func (*X结构_Session) RemoveAll ¶
func (s *X结构_Session) RemoveAll() (err error)
RemoveAll 从该会话中删除所有键值对。 md5:6ca756339a9f18b5
func (*X结构_Session) SetId ¶
func (s *X结构_Session) SetId(id string) error
SetId 在会话开始前设置自定义会话。如果在会话已经开始后调用,将返回错误。 md5:cf8fd98a6cd07079
func (*X结构_Session) SetIdFunc ¶
func (s *X结构_Session) SetIdFunc(f func(ttl time.Duration) string) error
SetIdFunc 在会话开始前设置自定义会话ID生成函数。 如果在会话已经开始后调用它,将返回错误。 md5:07c5962c3c68bf37
func (*X结构_Session) SetMap ¶
func (s *X结构_Session) SetMap(data map[string]interface{}) (err error)
SetMap 批量使用映射设置会话。 md5:f55c78b98e85ba61
func (*X结构_Session) Size ¶
func (s *X结构_Session) Size() (size int, err error)
Size返回会话的大小。 md5:072795e87a3938d1
func (*X结构_Session) X设置值 ¶
func (s *X结构_Session) X设置值(key string, value interface{}) (err error)
X设置值 将键值对设置到这个会话中。 md5:09e1539c4a50fcfd
type X结构_StorageBase ¶
type X结构_StorageBase struct{}
X结构_StorageBase是会话存储的基本实现。 md5:9a65ccca10de1608
func (*X结构_StorageBase) Data ¶
func (s *X结构_StorageBase) Data(ctx context.Context, sessionId string) (sessionData map[string]interface{}, err error)
Data 从存储中获取所有的键值对并将其作为映射返回。 md5:7160c6695dcc211b
func (*X结构_StorageBase) Get ¶
func (s *X结构_StorageBase) Get(ctx context.Context, sessionId string, key string) (value interface{}, err error)
Get 使用给定的键获取会话中的特定值。 如果键在会话中不存在,则返回nil。 md5:c1696c0fb72c680b
func (*X结构_StorageBase) GetSession ¶
func (s *X结构_StorageBase) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.X结构_StrAnyMap, error)
GetSession 从存储中根据给定的会话ID获取会话数据,返回一个指向*gmap.StrAnyMap的指针。
参数`ttl`指定了此会话的有效期,如果超过有效期,则返回nil。参数`data`是当前存储在内存中的旧会话数据,对于某些存储方式,如果禁用了内存存储,它可能会为nil。
此函数在会话启动时会被调用。 md5:01e56ce09d5fd934
func (*X结构_StorageBase) RemoveAll ¶
func (s *X结构_StorageBase) RemoveAll(ctx context.Context, sessionId string) error
RemoveAll 从存储中删除会话。 md5:488d9f9ca747e8e4
func (*X结构_StorageBase) SetMap ¶
func (s *X结构_StorageBase) SetMap(ctx context.Context, sessionId string, mapData map[string]interface{}, ttl time.Duration) error
SetMap 使用映射批量设置键值对会话到存储中。 参数 `ttl` 指定了会话ID的TTL(并非针对键值对)。 md5:a1bf3a748ba4aef3
func (*X结构_StorageBase) SetSession ¶
func (s *X结构_StorageBase) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ttl time.Duration) error
SetSession 根据指定的会话ID更新数据映射。 当某个被标记为脏(即发生过修改)的会话关闭后,将调用此函数。 该操作会将所有会话数据从内存复制到存储中。 md5:1caa26989d884fa4
type X结构_StorageFile ¶
type X结构_StorageFile struct { X结构_StorageBase // contains filtered or unexported fields }
X结构_StorageFile实现了使用文件系统作为会话存储的接口。 md5:bae13bc406aa3178
func NewStorageFile ¶
func NewStorageFile(path string, ttl time.Duration) *X结构_StorageFile
NewStorageFile 创建并返回一个用于会话的文件存储对象。 md5:047619bd552117d1
func (*X结构_StorageFile) GetSession ¶
func (s *X结构_StorageFile) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (sessionData *gmap.X结构_StrAnyMap, err error)
GetSession 从存储中根据给定的会话ID获取会话数据,返回一个指向*gmap.StrAnyMap的指针。
参数`ttl`指定了此会话的有效期,如果超过有效期,则返回nil。参数`data`是当前存储在内存中的旧会话数据,对于某些存储方式,如果禁用了内存存储,它可能会为nil。
此函数在会话启动时会被调用。 md5:01e56ce09d5fd934
func (*X结构_StorageFile) RemoveAll ¶
func (s *X结构_StorageFile) RemoveAll(ctx context.Context, sessionId string) error
RemoveAll 删除存储中的所有键值对。 md5:8b06607595d19a73
func (*X结构_StorageFile) SetCryptoEnabled ¶
func (s *X结构_StorageFile) SetCryptoEnabled(enabled bool)
SetCryptoEnabled 启用/禁用会话存储的加密功能。 md5:14228b4577da32ec
func (*X结构_StorageFile) SetCryptoKey ¶
func (s *X结构_StorageFile) SetCryptoKey(key []byte)
SetCryptoKey 设置会话存储的加密密钥。 当启用加密功能时,将使用此加密密钥。 md5:dbc53d710307bd28
func (*X结构_StorageFile) SetSession ¶
func (s *X结构_StorageFile) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ttl time.Duration) error
SetSession 根据指定的会话ID更新数据映射。 当某个被标记为脏(即发生过修改)的会话关闭后,将调用此函数。 该操作会将所有会话数据从内存复制到存储中。 md5:1caa26989d884fa4
type X结构_StorageMemory ¶
type X结构_StorageMemory struct { X结构_StorageBase // contains filtered or unexported fields }
X结构_StorageMemory 使用内存实现了会话存储接口。 md5:1a9a78b3bd5a138b
func NewStorageMemory ¶
func NewStorageMemory() *X结构_StorageMemory
NewStorageMemory 创建并返回一个用于会话的内存存储对象。 md5:9b1b616d48dd808e
func (*X结构_StorageMemory) GetSession ¶
func (s *X结构_StorageMemory) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.X结构_StrAnyMap, error)
GetSession 从存储中根据给定的会话ID获取会话数据,返回一个指向*gmap.StrAnyMap的指针。
参数`ttl`指定了此会话的有效期,如果超过有效期,则返回nil。参数`data`是当前存储在内存中的旧会话数据,对于某些存储方式,如果禁用了内存存储,它可能会为nil。
此函数在会话启动时会被调用。 md5:01e56ce09d5fd934
func (*X结构_StorageMemory) RemoveAll ¶
func (s *X结构_StorageMemory) RemoveAll(ctx context.Context, sessionId string) error
RemoveAll 从存储中删除会话。 md5:488d9f9ca747e8e4
func (*X结构_StorageMemory) SetSession ¶
func (s *X结构_StorageMemory) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ttl time.Duration) error
SetSession 根据指定的会话ID更新数据映射。 当某个被标记为脏(即发生过修改)的会话关闭后,将调用此函数。 该操作会将所有会话数据从内存复制到存储中。 md5:1caa26989d884fa4
type X结构_StorageRedis ¶
type X结构_StorageRedis struct { X结构_StorageBase // contains filtered or unexported fields }
X结构_StorageRedis 使用Redis实现会话存储接口。 md5:df4e47711869aaf9
func NewStorageRedis ¶
func NewStorageRedis(redis *gredis.X结构_Redis, prefix ...string) *X结构_StorageRedis
NewStorageRedis 创建并返回一个用于session的redis存储对象。 md5:58528aab48b7daea
func (*X结构_StorageRedis) GetSession ¶
func (s *X结构_StorageRedis) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.X结构_StrAnyMap, error)
GetSession 从存储中根据给定的会话ID获取会话数据,返回一个指向*gmap.StrAnyMap的指针。
参数`ttl`指定了此会话的有效期,如果超过有效期,则返回nil。参数`data`是当前存储在内存中的旧会话数据,对于某些存储方式,如果禁用了内存存储,它可能会为nil。
此函数在会话启动时会被调用。 md5:01e56ce09d5fd934
func (*X结构_StorageRedis) RemoveAll ¶
func (s *X结构_StorageRedis) RemoveAll(ctx context.Context, sessionId string) error
RemoveAll 删除存储中的所有键值对。 md5:8b06607595d19a73
func (*X结构_StorageRedis) SetSession ¶
func (s *X结构_StorageRedis) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ttl time.Duration) error
SetSession 根据指定的会话ID更新数据映射。 当某个被标记为脏(即发生过修改)的会话关闭后,将调用此函数。 该操作会将所有会话数据从内存复制到存储中。 md5:1caa26989d884fa4
type X结构_StorageRedisHashTable ¶
type X结构_StorageRedisHashTable struct { X结构_StorageBase // contains filtered or unexported fields }
X结构_StorageRedisHashTable 是使用 Redis 哈希表实现的会话存储接口。 md5:4479b82640ee5fc6
func NewStorageRedisHashTable ¶
func NewStorageRedisHashTable(redis *gredis.X结构_Redis, prefix ...string) *X结构_StorageRedisHashTable
NewStorageRedisHashTable 创建并返回一个用于会话的redis哈希表存储对象。 md5:7d5ec78a44d3be11
func (*X结构_StorageRedisHashTable) Data ¶
func (s *X结构_StorageRedisHashTable) Data(ctx context.Context, sessionId string) (data map[string]interface{}, err error)
Data 从存储中获取所有的键值对并将其作为映射返回。 md5:7160c6695dcc211b
func (*X结构_StorageRedisHashTable) Get ¶
func (s *X结构_StorageRedisHashTable) Get(ctx context.Context, sessionId string, key string) (value interface{}, err error)
Get 通过给定的键获取会话值。 如果该键不存在于会话中,它将返回nil。 md5:dd25fb53030b0080
func (*X结构_StorageRedisHashTable) GetSession ¶
func (s *X结构_StorageRedisHashTable) GetSession(ctx context.Context, sessionId string, ttl time.Duration) (*gmap.X结构_StrAnyMap, error)
GetSession 从存储中根据给定的会话ID获取会话数据,返回一个指向*gmap.StrAnyMap的指针。
参数`ttl`指定了此会话的有效期,如果超过有效期,则返回nil。参数`data`是当前存储在内存中的旧会话数据,对于某些存储方式,如果禁用了内存存储,它可能会为nil。
此函数在会话启动时会被调用。 md5:01e56ce09d5fd934
func (*X结构_StorageRedisHashTable) GetSize ¶
func (s *X结构_StorageRedisHashTable) GetSize(ctx context.Context, sessionId string) (size int, err error)
GetSize 从存储中检索键值对的大小。 md5:9dcc1d87ddc0a989
func (*X结构_StorageRedisHashTable) RemoveAll ¶
func (s *X结构_StorageRedisHashTable) RemoveAll(ctx context.Context, sessionId string) error
RemoveAll 删除存储中的所有键值对。 md5:8b06607595d19a73
func (*X结构_StorageRedisHashTable) SetMap ¶
func (s *X结构_StorageRedisHashTable) SetMap(ctx context.Context, sessionId string, data map[string]interface{}, ttl time.Duration) error
SetMap 使用映射批量设置键值对会话到存储中。 参数 `ttl` 指定了会话ID的TTL(并非针对键值对)。 md5:a1bf3a748ba4aef3
func (*X结构_StorageRedisHashTable) SetSession ¶
func (s *X结构_StorageRedisHashTable) SetSession(ctx context.Context, sessionId string, sessionData *gmap.X结构_StrAnyMap, ttl time.Duration) error
SetSession 根据指定的会话ID更新数据映射。 当某个被标记为脏(即发生过修改)的会话关闭后,将调用此函数。 该操作会将所有会话数据从内存复制到存储中。 md5:1caa26989d884fa4