forked from yiisoft/yii
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcaching.overview.txt
87 lines (69 loc) · 4.04 KB
/
caching.overview.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Caching
=======
Caching é uma maneira rápida e efetiva de aumentar a performances de aplicações
Web. Ao armazenar em cache dados relativamente estáticos, e utiliza-lo quando
esses dados forem requisitados, economizamos o tempo necessário para gerar esses
dados.
A utilização de cache no Yii consiste em configurar e acessar um componente de cache.
A configuração de aplicação exibida a seguir, especifica um componente de cache que
utiliza memcache com dois servidores:
~~~
[php]
array(
......
'components'=>array(
......
'cache'=>array(
'class'=>'system.caching.CMemCache',
'servers'=>array(
array('host'=>'server1', 'port'=>11211, 'weight'=>60),
array('host'=>'server2', 'port'=>11211, 'weight'=>40),
),
),
),
);
~~~
Quando a aplicação está em execução, o componente pode ser acessado via:
`Yii::app()->cache`.
O Yii fornece diversos componentes de cache que podem armazenar dados
em diferentes meios. Por exemplo, o componente [CMemCache] encapsula a
extensão memcache do PHP e utiliza a memória como meio para armazenar os dados;
o componente [CApcCache] encapsula a extensão APC; e o componente [CDbCache]
armazena os dados do cache em um banco de dados. Abaixo temos um resumo dos
componentes de cache disponíveis:
- [CMemCache]: utiliza a extensão PHP [memcache](http://www.php.net/manual/en/book.memcache.php).
- [CApcCache]: utiliza a extensão PHP [APC](http://www.php.net/manual/en/book.apc.php).
- [CXCache]: utiliza a extensão PHP [XCache](http://xcache.lighttpd.net/).
Nota: esse componente está disponível a partir da versão 1.0.1.
- [CEAcceleratorCache]: utiliza a extensão PHP [EAccelerator](http://eaccelerator.net/).
- [CDbCache]: utiliza uma tabela no banco de dados para armazenar os dados.
Por padrão, ele irá criar e utilizar um banco de dados SQLite3 no diretório runtime de sua aplicação.
Você pode especifcar explicitamente um banco de dados por meio da propriedade [connectionID|CDbCache::connectionID].
- [CZendDataCache]: utiliza o Zend Data Cache como meio de armazenamento.
Nota: esse componente está disponível a partir da versão 1.0.4.
- [CFileCache]: utiliza arquivos para armazenar os dados em cache. Esse método
é particularmente útil para armazenar grandes quantidades de dados em cache (por exemplo,
páginas).
Nota: esse componente está disponível a partir da versão 1.0.6.
- [CDummyCache]: é um cache falso, que na realidade não realiza caching algum.
A finalidade deste componente é simplificar o desenvolvimento de código que precisa
trabalhar com dados em cache. Por exemplo, durante o desenvolvimento ou quando
o servidor atual não tem suporte a cache, podemos utilizar esse componente. Assim,
quando o suporte a cache estiver disponível basta apenas trocar o componente.
Em ambos os casos, podemos utilizar utilizar o `Yii::app()->cache->get($key)`
para recuperar dados do cache, sem se preocupar se `Yii::app()->cache` é `null`.
Este componente está disponível a partir da versão 1.0.5;
> Tip|Dica: Como todos os componentes de cache são derivados da classe [CCache],
você pode alterar entre diversos tipos de cache sem modificar o código que os
utilizam.
O Caching pode ser utilizado em diferentes níveis. No mais baixo nível, podemos
utilizar cache para armazenar pequenos dados, tal como uma variável. Chamamos isso
de *data caching* (Caching de dados). No próximo nível, podemos utiliza-lo para
armazenar fragmentos de uma página que é gerada por uma visão. No nível mais alto,
armazenamos toda a página no cache e a servimos de la, quando necessário.
Nas próximas subseções, falaremos mais sobre como utilizar o cache nesses níveis.
> Note|Nota: Por definição, o cache é um meio de armazenamento volátil. Ele não
garante a existência dos dados em cache, mesmo que eles não expirem. Portanto,
não utilize cache como um meio de armazenamento persistente (por exemplo, não o
utilize para armazenar dados da sessão.
<div class="revision">$Id: caching.overview.txt 1315 2009-08-09 04:07:35Z qiang.xue $</div>