A maioria dos desenvolvedores de sites tende a ignorar o armazenamento em cache sem perceber que isso pode prejudicar seus aplicativos. Um atraso de um segundo no tempo de acesso pode significar que você está perdendo clientes ou usuários para os concorrentes.
O Yii2 suporta o armazenamento em cache em uma variedade de métodos. Suporta cache de fragmentos, cache de dados, cache de páginas e conteúdo dinâmico. Os componentes de armazenamento em cache podem ser trocados sem a necessidade de alterar o código que utiliza o cache.
Neste artigo, faremos uma comparação das velocidades do cache em vários métodos.
- Sem usar o cache
- FileCache
- DbCache
- Redis
Etapas para fazer uma comparação da velocidade do cache no yii2
- Configure uma tabela usando o MySQL
CREATE TABLE 'test_cache' ( 'id' INTEGER(11) NOT NULL AUTO_INCREMENT, 'data' VARCHAR(20) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY USING BTREE ('id') ) ENGINE=InnoDB AUTO_INCREMENT=1 ROW_FORMAT=DYNAMIC CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
Crie uma tabela simples com colunas de id e dados. Em seguida, crie um registro para a tabela.
Nessa tentativa, adicionamos uma coluna de dados com caracteres aleatórios com 20 caracteres. O número de linhas que criamos é de 10.000 linhas.
- Crie um modelo da tabela, por exemplo, com o nome “Testcache”.
- Crie um controlador para exibir uma resposta, por exemplo, com o nome “TestcacheController”
“TestcacheController” sem cache
public function actionIndex() { $data=TestCache::find()->all(); Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; return $data; }
“TestcacheController” com cache
public function actionIndex(){ $data = Yii::$app->cache->getOrSet('testcachedata', function () { return TestCache::find()->all(); }); Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; return $data; }
- Configure o cache do yii2 em “config/main.php.
Configuração do “FileCache”
'cache' => [ 'class' => 'yiicachingFileCache', ],
Configuração do “DbCache”
'cache' = > [ 'class' => 'yiicachingDbCache', ],
Para a configuração “DbCache”, crie previamente uma tabela com o nome “cache”
CREATE TABLE 'cache' ( 'id' CHAR(128) COLLATE utf8mb4_general_ci NOT NULL, 'expire' INTEGER(11) DEFAULT NULL, BLOB 'data', PRIMARY KEY USING BTREE ('id') ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
Configuração do Redis
'cache' => [ 'class' => 'yiiredisCache', ], 'session' => [ 'class' => 'yiiredisSession', ], 'redis' => [ 'class' => 'yiiredisConnection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ],
Anteriormente, instale o Redis com
php composer.phar require --prefer-dist yiisoft/yii2-redis:"~2.0.0"
- Teste de resposta. Para testar a velocidade da resposta, podemos usar o Postman para verificar a velocidade da resposta e exibir os resultados da resposta.
Outros artigos interessantes
Resultados do teste de uso do cache no Yii2
Os resultados do teste acima são os resultados que obtivemos usando o mesmo computador. A velocidade de resposta obtida é muito influenciada por várias condições, uma das quais é o hardware usado e também o sistema operacional.
Com esses resultados, pelo menos temos uma visão geral da velocidade de resposta de alguns métodos de uso do cache.
Boa sorte…