Tải bản đầy đủ (.pdf) (32 trang)

Bài 5: Vấn đề về Cache trong Yii framework

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (428.63 KB, 32 trang )

Bài 5: V n

v Cache trong

Yii framework

Bài 5: Caching trong Yii framework


M c tiêu bài h c






T ng quan v Caching trong Yii framework
Caching d li u
Caching o n d li u
Caching trang d li u
N i dung ng

Bài 5: Caching trong Yii framework

2


T ng quan v Caching

Yii framework


Bài 5: Caching trong Yii framework

3


Caching là gì?
 B nh
m (caching) là m t cách ti t ki m chi phí và
r t hi u qu trong vi c c i thi n hi u su t c a m t ng
d ng Web.
 B ng cách l u tr d li u t ng
i t nh trong b nh
cache và ph c h i nó t b nh cache khi có yêu c u,
chúng ta ti t ki m th i gian c n thi t
t o ra d li u
m i.
 S d ng b nh cache trong Yii ch y u liên quan n
c u hình và truy c p vào m t thành ph n ng d ng
trong b nh cache

Bài 5: Caching trong Yii framework

4


Caching là gì?
s d ng b nh

m, ta dùng: Yii::app()->cache.


Bài 5: Caching trong Yii framework

5


Caching là gì?
s d ng b nh
m, ta dùng: Yii::app()->cache.
Yii cung c p các lo i b nh
m sau:
CMemCache: s d ng PHP memcache m r ng .
CApcCache: s d ng PHP APC m r ng.
CXCache: s d ng PHP XCache m r ng.
CEAcceleratorCache: s d ng PHP eAccelerator m r ng.
CDummyCache: gi i thi u cache gi mà không có b nh
m. M c ích là
n gi n hóa các mã mà c n ki m tra s
s n có c a b nh cache.
•Ví d , trong quá trình phát tri n, n u máy ch không có h
tr b nh cache th c t , chúng ta có th s d ng thành
ph n b nh cache này
Bài 5: Caching trong Yii framework

6


Caching d li u

Yii framework


Bài 5: Caching trong Yii framework

7


Caching d li u là gì?
B nh
m d li u nh m l u tr m t s bi n PHP trong b
nh cache và l y nó b nh cache khi c n thi t.
V i m c ích này, l p CCache cung c p 2 ph ng th c là
get() và set()

l u tr bi n $value trong Cache, chúng ta s d ng id duy
nh t nh sau:

l u d li u trong Cache trong m t th i gian nh t
dùng:

nh, ta

Bài 5: Caching trong Yii framework

8


Caching d li u là gì?
C ng có th get, set các cách t ng
Câu l nh thi t l p d li u trong cache:
$cache ->set('var1',$value1);
Câu l nh


ng nh sau:

VS

c d li u t cache:

$value2=$cache->get('var2');

VS

•Trong ó: var1, var2 óng vai trò là ID

Bài 5: Caching trong Yii framework

9


B nh

m ph thu c?

Bên c nh vi c thi t l p ngày h t h n, l u tr d li u c ng có
th vô hi u hóa b ng cách s d ng m t s thay
i ph
thu c.
Ví d , chúng ta có b nh
m ch a n i dung c a m t s
t p tin và các t p tin thay
i, chúng ta nên vô hi u hóa các

b n sao l u tr và
c n i dung m i nh t t t p tin thay vì
c b nh cache.
Ta s dung các th hi n c a l p CCacheDependency
s
d ng vào vi c này

Bài 5: Caching trong Yii framework

10


B nh

m ph thu c?

Ví d : D li u s b vô hi u hóa trong 30s, và nó có th b
vô hi u hóa tr c ó n u các t p tin ph thu c b thay i

D i ây là m t s d ng b nh
m ph thu c:
•CFileCacheDependency: s ph thu c
c thay i n u
th i gian s a i cu i cùng c a t p tin
c thay i.
•CDirectoryCacheDependency: s ph thu c
c thay
i n u các t p tin trong th m c và th m c con c a nó
c thay i.


Bài 5: Caching trong Yii framework

11


B nh

m ph thu c?

D i ây là m t s d ng b nh
m ph thu c:
•CDbCacheDependency: s ph thu c
c thay
i n u
truy v n k t qu c a câu l nh SQL
c thay i.
•CGlobalStateCacheDependency: s ph thu c
c thay
i n u giá tr c a bi n toàn c c thay
i. M t bi n toàn
c c là m t bi n liên t c
c yêu c u nhi u phiên trong
ng d ng. Nó
c nh ngh a thông qua CApplication ::
setGlobalState ().
•CChainedCacheDependency: s ph thu c
c thay
i
n u nó ph thu c vào chu i
c thay i.

•CExpressionDependency: s ph thu c
c thay i n u
k t qu c a bi u th c PHP
c thay i.

Bài 5: Caching trong Yii framework

12


Truy v n trong b nh

m?

Ta s d ng ph ng th c sau
thành ph n ng d ng trong b nh
• CDbConnection::queryCacheID
S d ng b nh
m v i DAO:

S d ng b nh

tham chi u
m

n ID c a

m v i Active Record

Bài 5: Caching trong Yii framework


13


B nh
Ví d

m a truy v n?
o n ch

ng trình sau:

Ta th y r ng, m c nh db->cache(1000, $dependency,1)
t c là s d ng cache cho câu l nh createComand.
Nh ng nh ng câu l nh sau ó s không s d ng cache
n u không ch rõ.

Bài 5: Caching trong Yii framework

14


B nh

m a truy v n?

Ví d o n ch
d ng cache:

ng trình sau ch rõ 2 câu truy v n


us

Bài 5: Caching trong Yii framework

15


B nh

m

o n d li u

Yii framework

Bài 5: Caching trong Yii framework

16


B nh

m o n d li u?

B nh
m o n d li u
c p n m t ph n d li u c a
trang
c l u trong b nh

m.
Ví d , n u m t trang hi n th m t b n tóm t t quá trình bán
hàng c n m trong m t b ng, chúng ta có th l u tr b ng
này trong b nh cache
lo i b th i gian c n thi t t o ra
nó cho m i yêu c u.

s d ng b nh
m o n d li u, ta dùng:
• CController::beginCache() và CController::endCache()

Bài 5: Caching trong Yii framework

17


B nh

m o n d li u?

Ví d


o n trên, n u n u beginCache() tr v false, n i dung l u
tr s
ct
ng chèn vào cache.
Ng c l i n i dung bên trong s
c th c hi n và
c

l u tr khi endCache ()
c g i.

Bài 5: Caching trong Yii framework

18


Các l a ch n b nh

m?

V th i gian:
Xét ví d sau:

Ta th y r ng o n mã trên s l u tr n i dung vào cache
trong ít nh t 1 gi .
N u chúng ta không thi t l p th i gian, nó s m c nh
là 60 giây, có ngh a là n i dung
c l u tr s h t hi u
l c sau 60 giây.

Bài 5: Caching trong Yii framework

19


Các l a ch n b nh

m?


V s ph thu c:
Ví d : n i dung c a m t bài vi t
vào có hay không có bài
cs a

c hi n th ph thu c
i.

 o n mã trên quy nh các n i dung phân m nh ph
thu c vào s thay i giá tr c t lastmodified:

Bài 5: Caching trong Yii framework

20


Các bi n th b nh

m?


tránh g i nh m vùng nh
m, chúng ta nên s d ng
ID khác nhau khi g i beginCache ().
Các lo i bi n th :
•varyByRoute
•varyBySession
•VaryByParam
•varyByExpression


Bài 5: Caching trong Yii framework

21


Các lo i yêu c u?
Khi hi n th Form, chúng ta mu n l u trong cache
sau này
khi g i l i Form chúng có th
c t cache và i n l i v
Form.

Bài 5: Caching trong Yii framework

22


Cache l ng nhau?
“ o n” b nh
m có th
c l ng vào nhau. ó là,
m t “ o n” l u tr
c bao b c trong m t “ o n” l n
h n c ng
c l u tr .
Ví d , các ý ki n
c l u tr trong m t b nh cache
bên trong “ o n” b nh
m, và chúng c ng

c l u
tr cùng v i n i dung bài trong m t b nh
m bên
ngoài.

Bài 5: Caching trong Yii framework

23


B nh

m Trang d li u

Yii framework

Bài 5: Caching trong Yii framework

24


B nh

m Trang d li u?

Trang b nh
m
c p nb
toàn b trang.
Trang b nh

m có th x y ra t
Ví d , b ng cách ch n m t tiêu
duy t c a ng i dùng có th nh
trong m t th i gian h n ch . Các
th l u tr n i dung trang trong b

nh

m n i dung c a

i các v trí khác nhau.
trang thích h p, trình
cache trang
c xem
ng d ng web c ng có
nh cache.

Bài 5: Caching trong Yii framework

25


×