colourbox/simplesamlphp-module-redis

一个用于使用Redis进行会话存储等的SimpleSAMLphp模块。

1.1.0 2017-03-17 14:04 UTC

This package is auto-updated.

Last update: 2024-09-06 19:18:09 UTC


README

简介

Redis模块实现了simpleSAMLphp数据存储API,因此Redis可以用作后端存储,即会话存储。

Build Status

先决条件

此模块需要以下内容

  • simpleSAMLphp v. 1.14.11(与旧版本兼容,但建议更新)
  • Redis服务器,更多信息请参见https://redis.ac.cn/

安装

首先要做的是设置你的Redis服务器。这超出了本文档的范围。

然后你必须通过获取tarball或通过composer安装此模块。后者是推荐的

composer.phar require colourbox/simplesamlphp-module-redis

这将自动安装"predis/predis"作为模块的依赖。如果你自己下载了模块,请记住在composer.json中添加predis/predis作为依赖项。

有关如何通过composer安装simpleSAMLphp模块的更多信息,请参见https://github.com/simplesamlphp/composer-module-installer

现在你可以通过以下方式启用该模块

touch /var/simplesamlphp/modules/redis/enable

创建/var/simplesamlphp/config/module_redis.php,并设置适合你的Redis服务器的适当选项。配置文件模板可以在以下位置找到

通过在config.php中设置以下选项,Redis被用作simpleSAMLphp的会话存储

'store.type' => 'redis:Redis'

配置选项

  • parameters 基于predis客户端的连接参数。有关详细信息,请参阅连接参数
  • options 基于predis客户端的客户端选项。有关详细信息,请参阅选项
  • prefix 存储在Redis中所有键的键前缀
  • lifetime Redis中非过期键的默认生命周期
  • oldHost 当进行滚动更新时的旧Redis主机配置
    • parameters 基于predis客户端的连接参数
    • options 基于predis客户端的客户端选项

示例

$config = [
    // Predis client parameters
    'parameters' => 'tcp://:6379',

    // Predis client options
    'options' => null,

    // Key prefix
    'prefix' => 'simpleSAMLphp',

    // Lifitime for all non expiring keys
    'lifetime' => 288000
];

滚动到新服务器

此模块内置了对滚动更新到新Redis主机的支持。所有写操作都只对新主机进行,但如果新主机上找不到值,则所有读操作都将回退到旧主机。

如何做

  • 启动新的Redis主机
  • 将新主机添加到配置文件(parametersoptions),并将旧主机添加到 oldHost 选项中
  • 等待最大会话生命周期到期
  • 删除 oldHost 配置
  • 关闭旧Redis主机

配置示例

$config = [
    // Predis client parameters
    'parameters' => 'tcp://newhost:6379',

    // Predis client options
    'options' => null,

    // Old host
    'oldHost' => [
        // Predis client parameters
        'parameters' => 'tcp://oldhost:6379',

        // Predis client options
        'options' => null,
    ],

    // Key prefix
    'prefix' => 'simpleSAMLphp',

    // Lifitime for all non expiring keys
    'lifetime' => 288000
];