\hymie\sessionRedisSession

Redis Session

在 read 函数时 获取 锁,每次 write 时 释放-获取 锁,close 时释放锁。

php 的 SessionHandler 执行过程是:

session_start -> open -> [read | write] -> close 调用 session_destory 会调用 destory 方法。 调用 session_gc 会调用 gc 方法。 调用 session_write_close 会滴用 write -> close 方法。

Summary

Methods
Properties
Constants
__construct()
open()
read()
write()
close()
destroy()
gc()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
getLock()
releaseLock()
$redis
$keyPerfix
$lockKey
$locked
$sessionId
N/A

Properties

$redis

$redis : 

Type

$keyPerfix

$keyPerfix : 

Type

$lockKey

$lockKey : 

Type

$locked

$locked : 

Type

$sessionId

$sessionId : 

Type

Methods

__construct()

__construct() 

构造函数

open()

open(string  $save_path, string  $name) : boolean

open 函数,调用 session_start 会调用此函数,类似于构造函数

Parameters

string $save_path

保存路径 这里用哦不到

string $name

名字 这里用不到

Returns

boolean —

初始化是否成功

read()

read(string  $sessionId) : string

读取持久化在 redis 中的会话数据,返回给 php 来填充 $_SESSION 全局变量

Parameters

string $sessionId

会话id,由 php 生成

Returns

string —

会话数据,如出现错误返回空字符串

write()

write(string  $sessionId, string  $sessionData) 

持久化会话数据

Parameters

string $sessionId

session id

string $sessionData

序列化后的 $_SESSION 数据

close()

close() 

关闭 Handler

destroy()

destroy(  $sessionId) 

当 session_destory 调用时调用此函数。清除当前已保存的 session 数据

Parameters

$sessionId

gc()

gc(  $maxlifetime) 

过期 session 回收,这个由 redis key 的过期时间控制。

Parameters

$maxlifetime

getLock()

getLock(string  $sessionId) : boolean

获取会话锁,方式并发读取或者写入会话数据到redis。

Parameters

string $sessionId

session id

Returns

boolean —

是否成功获取锁

releaseLock()

releaseLock() : boolean

释放锁

Returns

boolean —

是否成功