Azalea\RedisModel

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] )

官方文档:http://redis.io/commands

  • 参数
    $command - Redis 命令
    $args - 命令参数

  • 返回值
    命令执行结果

  • 范例

$result = $redisModel->command('flushall');  // flushall
$result = $redisModel->command('keys');  // keys
$result = $redisModel->command('hgetall', 'foo');  // hgetall foo

推荐阅读更多精彩内容