# Redis 数据库

Redis 是一个开源的可基于内存亦可持久化的高性能键值对数据库。

# 配置

你可以通过 global.php 中的 redis 配置项来配置 Redis 数据库。

/* Redis 连接配置,框架将自动生成连接池,支持多个连接池 */
$config['redis'] = [
    'default' => [
        'enable' => false,
        'host' => '127.0.0.1',
        'port' => 6379,
        'index' => 0,
        'auth' => '',
        'pool_size' => 10,
    ],
];
1
2
3
4
5
6
7
8
9
10
11

你可以在配置中定义多个 Redis 连接,每个连接都有一个唯一的名称,例如 defaultcachesession 等。

# 使用

你可以使用 redis 函数来获取 Redis 连接,例如:

$redis = redis('default');
$redis->set('key', 'value');
1
2

redis 函数接收一个参数,即 Redis 连接的名称,如果不传递参数,则默认使用 default 连接。其会返回一个 RedisWrapper 对象,该对象是对 Redis 连接池的封装。

你可以通过 RedisWrapper 中的各种方法来操作 Redis 数据库,例如 setgetdel 等。

详情请参考 redis 全局函数

# 连接池

框架会自动为每个 Redis 连接创建一个连接池,你可以通过 pool_size 配置项来设置连接池的大小。

# 通过 KV 库方式使用 Redis

默认情况下,你使用 redis() 方法获取的是 redis 扩展的原生操作对象,使用方式和传统的 redis 扩展完全相同。

框架实现了一个 KVInterface 接口,继承于 PSR SimpleCache 标准,你可以使用 PSR-16 的方式来使用其中一个 redis 库。详见 KV 库