RedisModel Redis 緩存服務(wù)模塊類
?? 要使用 Azalea\RedisModel 必須在配置中聲明使用
$config['node-beauty']['redis'] = 1
?? RedisModel 構(gòu)造函數(shù)已私有坡贺,無法通過 new 方式實(shí)例化弃榨,僅通過 控制器 或 模塊 的
getModel
方法獲得
// in controller-action
$redisModel = $this->getModel('redis');
$keys = $redisModel->keys(); // execute keys command
RedisModel::keys
獲取緩存 keys
array RedisModel::keys ( string $key = "*" )
參數(shù)
$key - 緩存鍵,支持通配符"*"
返回值
匹配的緩存鍵數(shù)組范例
$keys = $redisModel->keys();
$keys = $redisModel->keys('foo*');
RedisModel::get
獲取緩存值
mixed RedisModel::get ( string $key [, mixed $default = null [, string $serialize = 'json']] )
- 參數(shù)
$key - 緩存鍵
$default - 當(dāng)緩存鍵不存在時(shí)返回的默認(rèn)值,默認(rèn)為null
自点,可用isset
方法來判斷
$serialize - 反序列化方法
反序列化方法 | 描述 |
---|---|
json |
json_decode ,默認(rèn)值 |
php |
unserialize |
raw |
原始字符串 |
返回值
緩存值范例
$value = $redisModel->get('foo');
$value = $redisModel->get('bar', null, 'raw');
RedisModel::set
設(shè)置緩存值
bool RedisModel::set ( string $key , mixed $value [, int $lifetime = 0 [, string $serialize = 'json']] )
- 參數(shù)
$key - 緩存鍵
$value - 緩存值
$lifetime - 緩存有效時(shí)間,單位秒,默認(rèn)為0
郑什,表示不過期
$serialize - 序列化方法
序列化方法 | 描述 |
---|---|
json |
json_encode ,默認(rèn)值 |
php |
serialize 蒲肋,常用于保存 PHP 類或鍵值對(duì)數(shù)組(因?yàn)?json 方法無法保存對(duì)象所屬類名蘑拯,而鍵值對(duì)數(shù)組還原后會(huì)得到 stdClass 對(duì)象) |
raw |
原始字符串,當(dāng)選擇該序列化方式時(shí)兜粘,$value 必須為字符串 |
返回值
成功返回true
否則false
范例
$result = $redisModel->set('foo', [1, 2, 3]);
$result = $redisModel->set('hello', 'world', 0, 'raw');
RedisModel::delete
刪除緩存鍵
int RedisModel::delete ( string ...$key )
該方法可批量刪除緩存鍵
參數(shù)
$key - 要?jiǎng)h除的緩存鍵申窘,支持通配符"*"
返回值
成功刪除的數(shù)量范例
$affected = $redisModel->delete('*'); // 刪除所有鍵,該行為建議使用 RedisModel::clean() 方法代替效率更高
$affected = $redisModel->delete('foo*', 'bar*', 'hello', 'world');
RedisModel::clean
清除所有緩存
bool RedisModel::clean ( void )
參數(shù)
無返回值
無范例
$result = $redisModel->clean();
RedisModel::incr
自增/自減緩存值
int RedisModel::incr ( string ...$key [, int $increment = 1] )
參數(shù)
$key - 緩存鍵
$increment - 自增值孔轴,默認(rèn)1
剃法,自減該值為負(fù)數(shù)返回值
增減后的值范例
$value = $redisModel->incr('foo');
$value = $redisModel->incr('foo', 100);
$value = $redisModel->incr('foo', -1);
RedisModel::command
執(zhí)行 Redis 命令
mixed RedisModel::command ( string $command [, string ...$args] )
參數(shù)
$command - Redis 命令
$args - 命令參數(shù)返回值
命令執(zhí)行結(jié)果范例
$result = $redisModel->command('flushall'); // flushall
$result = $redisModel->command('keys'); // keys
$result = $redisModel->command('hgetall', 'foo'); // hgetall foo