安装redis指定版本
composer require easyswoole/redis:^1.3
redis配置,dev.php
<?phpuse EasySwoole\Log\LoggerInterface;return ['SERVER_NAME' => "EasySwoole",'MAIN_SERVER' => ['LISTEN_ADDRESS' => '0.0.0.0','PORT' => 9503,'SERVER_TYPE' => EASYSWOOLE_WEB_SERVER, //可选为 EASYSWOOLE_SERVER EASYSWOOLE_WEB_SERVER EASYSWOOLE_WEB_SOCKET_SERVER'SOCK_TYPE' => SWOOLE_TCP,'RUN_MODEL' => SWOOLE_PROCESS,'SETTING' => ['worker_num' => 8,'reload_async' => true,'max_wait_time' => 3],'TASK' => ['workerNum' => 4,'maxRunningNum' => 128,'timeout' => 15]],"LOG" => ['dir' => null,'level' => LoggerInterface::LOG_LEVEL_DEBUG,'handler' => null,'logConsole' => true,'displayConsole' => true,'ignoreCategory' => []],'TEMP_DIR' => null,// 添加 Redis 及对应的连接池配置/*################ REDIS CONFIG ##################*/'REDIS' => ['host' => '127.0.0.1', // Redis 地址'port' => '6379', // Redis 端口'auth' => '', // Redis 密码'timeout' => 3.0, // Redis 操作超时时间'reconnectTimes' => 3, // Redis 自动重连次数'db' => 0, // Redis 库],
];
EasySwooleEvent.php,加入预加载
public static function initialize(){date_default_timezone_set('Asia/Shanghai');$rdConfig = new RedisConfig(Config::getInstance()->getConf('REDIS'));RedisPool::getInstance()->register($rdConfig);}
控制器使用
public function getOne(){$param = ContextManager::getInstance()->get('param');$redis = RedisPool::defer();//redis 操作$redisData = $redis->get($this->key.$param['id']);if ($redisData) {$this->writeJson(Status::CODE_OK, json_decode($redisData, true), "获取数据成功.");return false;}$model = new StudentModel();try {$info = $model->where('id', $param['id'])->get();} catch (Exception|\EasySwoole\ORM\Exception\Exception|\Throwable $e) {$this->writeJson(Status::CODE_BAD_REQUEST, [], $e->getMessage());return false;}if (!$info) {$this->writeJson(400, [], '该数据不存在');return false;}$redis->set($this->key.$param['id'], json_encode($info, JSON_UNESCAPED_UNICODE), $this->time);$this->writeJson(Status::CODE_OK, $info, "获取数据成功.");}