Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Plugins bot
moodle-plugins-snapshots
Commits
88671590
Commit
88671590
authored
Jan 14, 2017
by
wehr
Committed by
Eloy Lafuente
Jan 25, 2017
Browse files
MDL-57655 session: Adds igbinary serializer to Redis session handler
parent
ae8e8e6a
Changes
2
Hide whitespace changes
Inline
Side-by-side
config-dist.php
View file @
88671590
...
...
@@ -261,6 +261,9 @@ $CFG->admin = 'admin';
// $CFG->session_redis_prefix = ''; // Optional, default is don't set one.
// $CFG->session_redis_acquire_lock_timeout = 120;
// $CFG->session_redis_lock_expire = 7200;
// Use the igbinary serializer instead of the php default one. Note that phpredis must be compiled with
// igbinary support to make the setting to work. Also, if you change the serializer you have to flush the database!
// $CFG->session_redis_serializer_use_igbinary = false; // Optional, default is PHP builtin serializer.
//
// Memcache session handler (requires memcached server and memcache extension):
// $CFG->session_handler_class = '\core\session\memcache';
...
...
lib/classes/session/redis.php
View file @
88671590
...
...
@@ -50,6 +50,8 @@ class redis extends handler {
protected
$prefix
=
''
;
/** @var int $acquiretimeout how long to wait for session lock in seconds */
protected
$acquiretimeout
=
120
;
/** @var int $serializer The serializer to use */
protected
$serializer
=
\
Redis
::
SERIALIZER_PHP
;
/**
* @var int $lockexpire how long to wait in seconds before expiring the lock automatically
* so that other requests may continue execution, ignored if PECL redis is below version 2.2.0.
...
...
@@ -91,6 +93,10 @@ class redis extends handler {
$this
->
acquiretimeout
=
(
int
)
$CFG
->
session_redis_acquire_lock_timeout
;
}
if
(
!
empty
(
$CFG
->
session_redis_serializer_use_igbinary
)
&&
defined
(
'\Redis::SERIALIZER_IGBINARY'
))
{
$this
->
serializer
=
\
Redis
::
SERIALIZER_IGBINARY
;
// Set igbinary serializer if phpredis supports it.
}
// The following configures the session lifetime in redis to allow some
// wriggle room in the user noticing they've been booted off and
// letting them log back in before they lose their session entirely.
...
...
@@ -150,7 +156,7 @@ class redis extends handler {
if
(
!
$this
->
connection
->
connect
(
$this
->
host
,
$this
->
port
,
1
))
{
throw
new
RedisException
(
'Unable to connect to host.'
);
}
if
(
!
$this
->
connection
->
setOption
(
\
Redis
::
OPT_SERIALIZER
,
\
Redis
::
SERIALIZER_PHP
))
{
if
(
!
$this
->
connection
->
setOption
(
\
Redis
::
OPT_SERIALIZER
,
$this
->
serializer
))
{
throw
new
RedisException
(
'Unable to set Redis PHP Serializer option.'
);
}
...
...
@@ -389,4 +395,4 @@ class redis extends handler {
$this
->
handler_destroy
(
$sid
);
}
}
\ No newline at end of file
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment