Skip to content

Redis

Reids 即可当做数据库使用,也可当做缓存使用。启用 Redis 服务,需安装 PHPRedis 扩展(请安装3.1.2以上版本)。框架集成了 Redis 服务,可通过以下方式启用:

php
$biz->register(new Biz\Frameowrk\Provider\RedisServiceProvider(), array(
    'redis.options' => array(
        'host' => '127.0.0.1:6379',
        'password' => '',
        'timeout' => 2,
        'retry_interval' => 100,
        'prefix' => '',
    ),
));

通过 $biz['redis'] 即可获得 Redis 实例。如 host 中配置了多个 host ,那么 $biz['redis] 将返回 RedisArray 实例。RedisArrayRedis 类的接口基本一致,具体可参见 phpredis 官方文档

参数说明

redis.options 为 Redis 的配置项数组,配置项有:

  • host: Redis 的主机名,格式为 地址:端口号。多个地址则以逗号隔开,如 地址1:端口号1,地址2:端口号2,使用多个地址,那么 $biz['redis'] 会返回 RedisArray 对象。
  • password: 密码,默认为空。
  • timeout: 连接超时时间,默认2秒。
  • retry_interval: 连接失败后,重连间隔时间,默认100ms。
  • prefix: Key的前缀,默认为空。

多个Redis池

在读写分离、业务模块独立Redis等场景下,需要应用程序支持多个互相独立的Redis池,一个池可以由一个或多个Redis服务实例组成。通过以下方式启用多个Redis池:

php
$biz->register(new Biz\Frameowrk\Provider\RedisServiceProvider(), array(
    'mult_redis.options' => array(
        'write' => array (
            'host' => '127.0.0.1:6379',
            'password' => '',
            'timeout' => 2,
            'retry_interval' => 100,
            'prefix' => '',
        ),
        'read' => array (
            'host' => '127.0.0.1:6380,127.0.0.1:6381',
            'password' => '',
            'timeout' => 2,
            'retry_interval' => 100,
            'prefix' => '',
        ),
    ),
));

通过 $biz['redis']['write'] 获取上述6379端口的 Redis 对象实例,$biz['redis']['read'] 获取上述6380/6381端口的 RedisArray 对象实例。