NexusForce
1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
session_store_redis.hpp
浏览该文件的文档.
1
#ifndef NEFORCE_NETWORK_HTTP_SESSION_STORE_REDIS_HPP__
2
#define NEFORCE_NETWORK_HTTP_SESSION_STORE_REDIS_HPP__
3
8
9
#include "
NeForce/network/http/session_store.hpp
"
10
#ifdef NEFORCE_SUPPORT_HIREDIS
11
# include "
NeForce/db/redis/redis_connect.hpp
"
12
NEFORCE_BEGIN_NAMESPACE__
13
NEFORCE_BEGIN_HTTP__
14
19
28
class
redis_session_store final :
public
session_store
{
29
public
:
30
explicit
redis_session_store(
redis_connect
& conn) :
31
conn_(&conn) {}
32
33
optional<http_session>
load(
const
string
&
id
)
override
;
34
void
save(
const
http_session
& session)
override
;
35
void
remove(
const
string
&
id
)
override
{ conn_->del(prefix_ +
id
); }
36
NEFORCE_NODISCARD
bool
exists(
const
string
&
id
)
const override
{
return
conn_->exists(prefix_ +
id
); }
37
void
cleanup()
override
{}
38
NEFORCE_NODISCARD
size_t
count()
const override
{
return
0; }
39
40
private
:
41
redis_connect
* conn_;
42
string
prefix_{
"session:"
};
43
44
// TODO: Redis Cluster/Sentinel support — handle MOVED/ASK redirection and automatic failover for HA deployments
45
// TODO: Improved serialization — use JSON or MessagePack instead of key=value& pairs to handle special characters
46
// TODO: Session count implementation — use SCAN/KEYS with prefix to return accurate session count
47
};
48
// HTTP
50
51
NEFORCE_END_HTTP__
52
NEFORCE_END_NAMESPACE__
53
#endif
54
#endif
// NEFORCE_NETWORK_HTTP_SESSION_STORE_REDIS_HPP__
neforce::http::session_store
会话存储抽象接口
定义
session_store.hpp:26
neforce::optional
可选值类
定义
optional.hpp:71
redis_connect.hpp
Redis数据库连接实现
session_store.hpp
可插拔会话存储抽象层
neforce::http::http_session
HTTP会话结构
定义
http_session.hpp:165
neforce::redis_connect
Redis数据库连接类
定义
redis_connect.hpp:43
include
NeForce
network
http
session_store_redis.hpp
制作者
1.16.0