litefs.session package

class litefs.session.CachedSessionStore(store, cache, cache_key_prefix: str = 'session:')[源代码]

基类:object

带缓存的 Session 存储

在 DatabaseSession 前面添加缓存层,减少数据库查询

clear() None[源代码]

清空所有 Session

create() Session[源代码]

创建新的 Session 对象

返回:

Session 对象

delete(session_id: str) None[源代码]

删除 Session

参数:

session_id -- Session ID

exists(session_id: str) bool[源代码]

检查 Session 是否存在

参数:

session_id -- Session ID

返回:

Session 是否存在

expire(session_id: str, expiration: int) bool[源代码]

设置 Session 过期时间

参数:
  • session_id -- Session ID

  • expiration -- 过期时间(秒)

返回:

是否设置成功

get(session_id: str) Session | None[源代码]

获取 Session

参数:

session_id -- Session ID

返回:

Session 对象,如果不存在则返回 None

put(session_id: str, session: Session) None[源代码]

存储 Session

参数:
  • session_id -- Session ID

  • session -- Session 对象

save(session: Session) None[源代码]

保存 Session 数据

参数:

session -- Session 对象

ttl(session_id: str) int[源代码]

获取 Session 剩余过期时间

参数:

session_id -- Session ID

返回:

剩余过期时间(秒)

class litefs.session.DatabaseSession(db_path: str = ':memory:', table_name: str = 'sessions', expiration_time: int = 3600, **kwargs)[源代码]

基类:object

数据库 Session 实现

使用 SQLite 数据库作为 Session 存储,支持持久化存储

clear() None[源代码]

清空所有 Session

close() None[源代码]

关闭数据库连接

create() Session[源代码]

创建新的 Session 对象

返回:

Session 对象

delete(session_id: str) None[源代码]

删除 Session

参数:

session_id -- Session ID

exists(session_id: str) bool[源代码]

检查 Session 是否存在

参数:

session_id -- Session ID

返回:

Session 是否存在且未过期

expire(session_id: str, expiration: int) bool[源代码]

设置 Session 过期时间

参数:
  • session_id -- Session ID

  • expiration -- 过期时间(秒)

返回:

是否设置成功

get(session_id: str) Session | None[源代码]

获取 Session

参数:

session_id -- Session ID

返回:

Session 对象,如果不存在或已过期则返回 None

put(session_id: str, session: Session) None[源代码]

存储 Session

参数:
  • session_id -- Session ID

  • session -- Session 对象

save(session: Session) None[源代码]

保存 Session 数据

参数:

session -- Session 对象

ttl(session_id: str) int[源代码]

获取 Session 剩余过期时间

参数:

session_id -- Session ID

返回:

剩余过期时间(秒),如果 Session 不存在则返回 -2,已过期则返回 -1

class litefs.session.MemcacheSession(memcache_client=None, servers: list = ['localhost:11211'], key_prefix: str = 'litefs:session:', expiration_time: int = 3600, **kwargs)[源代码]

基类:object

Memcache Session 实现

使用 Memcache 作为 Session 存储,提供高性能的分布式缓存支持

clear() None[源代码]

清空所有 Session

注意:Memcache 不支持清空指定前缀的键,此方法不执行任何操作

close() None[源代码]

关闭 Memcache 连接

create() Session[源代码]

创建新的 Session 对象

返回:

Session 对象

delete(session_id: str) None[源代码]

删除 Session

参数:

session_id -- Session ID

delete_pattern(pattern: str) int[源代码]

删除匹配模式的 Session

注意:Memcache 不支持模式匹配,此方法仅返回 0

参数:

pattern -- 键模式

返回:

删除的键数量(始终为 0)

exists(session_id: str) bool[源代码]

检查 Session 是否存在

参数:

session_id -- Session ID

返回:

Session 是否存在

expire(session_id: str, expiration: int) bool[源代码]

设置 Session 过期时间

参数:
  • session_id -- Session ID

  • expiration -- 过期时间(秒)

返回:

是否设置成功

get(session_id: str) Session | None[源代码]

获取 Session

参数:

session_id -- Session ID

返回:

Session 对象,如果不存在则返回 None

put(session_id: str, session: Session) None[源代码]

存储 Session

参数:
  • session_id -- Session ID

  • session -- Session 对象

save(session: Session) None[源代码]

保存 Session 数据

参数:

session -- Session 对象

ttl(session_id: str) int[源代码]

获取 Session 剩余过期时间

注意:Memcache 不支持 TTL 查询,此方法返回 -1

参数:

session_id -- Session ID

返回:

剩余过期时间(秒),如果 Session 不存在则返回 -2,否则返回 -1(不支持查询)

class litefs.session.RedisSession(redis_client=None, host: str = 'localhost', port: int = 6379, db: int = 0, password: str | None = None, key_prefix: str = 'litefs:session:', expiration_time: int = 3600, **kwargs)[源代码]

基类:object

Redis Session 实现

使用 Redis 作为 Session 存储,提供高性能的分布式缓存支持

clear() None[源代码]

清空所有 Session

注意:这会删除所有带前缀的键

close() None[源代码]

关闭 Redis 连接

create() Session[源代码]

创建新的 Session 对象

返回:

Session 对象

delete(session_id: str) None[源代码]

删除 Session

参数:

session_id -- Session ID

delete_pattern(pattern: str) int[源代码]

删除匹配模式的 Session

参数:

pattern -- 键模式

返回:

删除的键数量

exists(session_id: str) bool[源代码]

检查 Session 是否存在

参数:

session_id -- Session ID

返回:

Session 是否存在

expire(session_id: str, expiration: int) bool[源代码]

设置 Session 过期时间

参数:
  • session_id -- Session ID

  • expiration -- 过期时间(秒)

返回:

是否设置成功

get(session_id: str) Session | None[源代码]

获取 Session

参数:

session_id -- Session ID

返回:

Session 对象,如果不存在则返回 None

put(session_id: str, session: Session) None[源代码]

存储 Session

参数:
  • session_id -- Session ID

  • session -- Session 对象

save(session: Session) None[源代码]

保存 Session 数据

参数:

session -- Session 对象

ttl(session_id: str) int[源代码]

获取 Session 剩余过期时间

参数:

session_id -- Session ID

返回:

剩余过期时间(秒),如果 Session 不存在则返回 -2

class litefs.session.Session(session_id=None, store=None)[源代码]

基类:UserDict

Session 数据对象

继承自 UserDict,用于存储单个 Session 的数据

save()[源代码]

手动保存 Session 数据到存储后端

class litefs.session.SessionBackend[源代码]

基类:object

Session 后端类型

DATABASE = 'database'
MEMCACHE = 'memcache'
MEMORY = 'memory'
REDIS = 'redis'
class litefs.session.SessionFactory[源代码]

基类:object

Session 工厂

根据配置创建不同类型的 Session 实例

static create_from_config(config) MemorySessionStore | DatabaseSession | RedisSession | MemcacheSession[源代码]

从配置对象创建 Session 实例

参数:

config -- 配置对象,应包含 session_backend 和相关配置

返回:

Session 实例

static create_session(backend: str = 'memory', **kwargs) MemorySessionStore | DatabaseSession | RedisSession | MemcacheSession[源代码]

创建 Session 实例

参数:
  • backend -- Session 后端类型(memory, database, redis, memcache)

  • **kwargs -- Session 配置参数

返回:

Session 实例

抛出:
  • ValueError -- 不支持的 Session 后端

  • ImportError -- Redis 或 Memcache 包未安装

Submodules

litefs.session.session module

class litefs.session.session.MemorySessionStore(max_size: int = 1000000)[源代码]

基类:object

内存 Session 存储

使用内存作为 Session 存储,适合开发环境

clear() None[源代码]

清空所有 Session

create() Session[源代码]

创建新的 Session 对象

返回:

Session 对象

delete(session_id: str) None[源代码]

删除 Session

参数:

session_id -- Session ID

exists(session_id: str) bool[源代码]

检查 Session 是否存在

参数:

session_id -- Session ID

返回:

Session 是否存在

expire(session_id: str, expiration: int) bool[源代码]

设置 Session 过期时间

注意:内存 Session 不支持过期时间,此方法始终返回 False

参数:
  • session_id -- Session ID

  • expiration -- 过期时间(秒)

返回:

是否设置成功

get(session_id: str) Session | None[源代码]

获取 Session

参数:

session_id -- Session ID

返回:

Session 对象,如果不存在则返回 None

put(session_id: str, session: Session) None[源代码]

存储 Session

参数:
  • session_id -- Session ID

  • session -- Session 对象

save(session: Session) None[源代码]

保存 Session 数据

参数:

session -- Session 对象

ttl(session_id: str) int[源代码]

获取 Session 剩余过期时间

注意:内存 Session 不支持过期时间,此方法始终返回 -1

参数:

session_id -- Session ID

返回:

剩余过期时间(秒),如果 Session 不存在则返回 -2,否则返回 -1(不支持查询)

class litefs.session.session.Session(session_id=None, store=None)[源代码]

基类:UserDict

Session 数据对象

继承自 UserDict,用于存储单个 Session 的数据

save()[源代码]

手动保存 Session 数据到存储后端