杨淇
- 杨淇 赞了回答
1·将这个 action 所在 controller 继承于 yii\console\Controller 就可以使用 console 执行;
2·最好是将这个文件放在 commands 目录下,方便管理。 - 杨淇 回复了话题 Yii2 权威指南 翻译补全计划
docs\guide-zh-CN\concept-events.md 关键概念-事件 5
docs\guide-zh-CN\concept-aliases 关键概念-别名 1
- 杨淇 2017-09-25 已签到连续签到22天,获得了20个金钱
- 杨淇 2017-09-24 已签到连续签到21天,获得了20个金钱
1·将这个 action 所在 controller 继承于 yii\console\Controller 就可以使用 console 执行;
2·最好是将这个文件放在 commands 目录下,方便管理。- 杨淇 2017-09-23 已签到连续签到20天,获得了20个金钱
- 杨淇 2017-09-22 已签到连续签到19天,获得了20个金钱
- 杨淇 2017-09-21 已签到连续签到18天,获得了20个金钱
- 杨淇 回答了问题 redis的sort函数
yii\redis\Connection 支持的命令中找到以下注释:
'SORT', // key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination] Sort the elements in a list, set or sorted set
所有的这些命令都会通过下面这个方法执行:
/**
* Allows issuing all supported commands via magic methods. * * ```php * $redis->hmset(['test_collection', 'key1', 'val1', 'key2', 'val2']) * ``` * * @param string $name name of the missing method to execute * @param array $params method call arguments * @return mixed */ public function __call($name, $params) { $redisCommand = strtoupper(Inflector::camel2words($name, false)); if (in_array($redisCommand, $this->redisCommands)) { return $this->executeCommand($name, $params); } else { return parent::__call($name, $params); } }
public function executeCommand($name, $params = []) { $this->open(); array_unshift($params, $name); $command = '*' . count($params) . "\r\n"; foreach ($params as $arg) { $command .= '$' . mb_strlen($arg, '8bit') . "\r\n" . $arg . "\r\n"; } \Yii::trace("Executing Redis Command: {$name}", __METHOD__); fwrite($this->_socket, $command); return $this->parseResponse(implode(' ', $params)); }
最终将命令拼成字符串执行,所以正确的写法是
Yii::$app->redis->sort('keyName', 'LIMIT', '0', '1']);