RedisModel Redis 缓存服务模块类
⚠️ 要使用 Azalea\RedisModel 必须在配置中声明使用
$config['node-beauty']['redis'] = 1
⚠️ RedisModel 构造函数已私有,无法通过 new 方式实例化,仅通过 控制器 或 模块 的
getModel
方法获得
// in controller-action
$redisModel = $this->getModel('redis');
$keys = $redisModel->keys(); // execute keys command
RedisModel::keys
获取缓存 keys
array RedisModel::keys ( string $key = "*" )
-
参数
$key - 缓存键,支持通配符"*"
-
返回值
匹配的缓存键数组 -
范例
$keys = $redisModel->keys();
$keys = $redisModel->keys('foo*');
RedisModel::get
获取缓存值
mixed RedisModel::get ( string $key [, mixed $default = null [, string $serialize = 'json']] )
- 参数
$key - 缓存键
$default - 当缓存键不存在时返回的默认值,默认为null
,可用isset
方法来判断
$serialize - 反序列化方法
反序列化方法 | 描述 |
---|---|
json |
json_decode ,默认值 |
php |
unserialize |
raw |
原始字符串 |
-
返回值
缓存值 -
范例
$value = $redisModel->get('foo');
$value = $redisModel->get('bar', null, 'raw');
RedisModel::set
设置缓存值
bool RedisModel::set ( string $key , mixed $value [, int $lifetime = 0 [, string $serialize = 'json']] )
- 参数
$key - 缓存键
$value - 缓存值
$lifetime - 缓存有效时间,单位秒,默认为0
,表示不过期
$serialize - 序列化方法
序列化方法 | 描述 |
---|---|
json |
json_encode ,默认值 |
php |
serialize ,常用于保存 PHP 类或键值对数组(因为 json 方法无法保存对象所属类名,而键值对数组还原后会得到 stdClass 对象) |
raw |
原始字符串,当选择该序列化方式时,$value 必须为字符串 |
-
返回值
成功返回true
否则false
-
范例
$result = $redisModel->set('foo', [1, 2, 3]);
$result = $redisModel->set('hello', 'world', 0, 'raw');
RedisModel::delete
删除缓存键
int RedisModel::delete ( string ...$key )
该方法可批量删除缓存键
-
参数
$key - 要删除的缓存键,支持通配符"*"
-
返回值
成功删除的数量 -
范例
$affected = $redisModel->delete('*'); // 删除所有键,该行为建议使用 RedisModel::clean() 方法代替效率更高
$affected = $redisModel->delete('foo*', 'bar*', 'hello', 'world');
RedisModel::clean
清除所有缓存
bool RedisModel::clean ( void )
-
参数
无 -
返回值
无 -
范例
$result = $redisModel->clean();
RedisModel::incr
自增/自减缓存值
int RedisModel::incr ( string ...$key [, int $increment = 1] )
-
参数
$key - 缓存键
$increment - 自增值,默认1
,自减该值为负数 -
返回值
增减后的值 -
范例
$value = $redisModel->incr('foo');
$value = $redisModel->incr('foo', 100);
$value = $redisModel->incr('foo', -1);
RedisModel::command
执行 Redis 命令
mixed RedisModel::command ( string $command [, string ...$args] )
-
参数
$command - Redis 命令
$args - 命令参数 -
返回值
命令执行结果 -
范例
$result = $redisModel->command('flushall'); // flushall
$result = $redisModel->command('keys'); // keys
$result = $redisModel->command('hgetall', 'foo'); // hgetall foo
网友评论