@@ -121,36 +121,37 @@ function Storage:compress(content, content_type, use_best)
121121end
122122
123123function Storage :get_skip ()
124- return ngx .shared .cache :get (self :page_key () .. ' skip' )
124+ return ngx .shared .cache_locks :get (self :page_key () .. ' skip' )
125125end
126126
127127function Storage :set_skip ()
128- local r , err = ngx .shared .cache :set (self :page_key () .. ' skip' , true , 30 )
128+ local r , err = ngx .shared .cache_locks :set (self :page_key () .. ' skip' , true , 30 )
129129 return r
130130end
131131
132132function Storage :get_lock (timeout )
133- local r , err = ngx .shared .cache :add (self :page_key () .. ' lock' , true , timeout )
133+ local r , err = ngx .shared .cache_locks :add (self :page_key () .. ' lock' , true , timeout )
134134 return r
135135end
136136
137137function Storage :release_lock ()
138- return ngx .shared .cache :delete (self :page_key () .. ' lock' )
138+ return ngx .shared .cache_locks :delete (self :page_key () .. ' lock' )
139139end
140140
141- function Storage :set (key , val , ttl )
141+ function Storage :set (key , val , ttl , is_metadata )
142142 key = namespace .. key
143143
144144 val = {val = val , ttl = ttl , created = ngx .time ()}
145145 val = serializer .serialize (val )
146146
147- ngx . shared . cache :set (key , self .datastore :set (key , val , ttl ), ttl )
147+ self : get_local_store ( is_metadata ) :set (key , self .datastore :set (key , val , ttl ), ttl )
148148end
149149
150- function Storage :get (key )
150+ function Storage :get (key , is_metadata )
151151 key = namespace .. key
152152 local locally_cached = false
153- local entry = ngx .shared .cache :get (key )
153+ local local_storage = self :get_local_store (is_metadata )
154+ local entry = local_storage :get (key )
154155
155156 if entry then
156157 locally_cached = true
@@ -168,16 +169,26 @@ function Storage:get(key)
168169 local age = (ngx .time () - thawed .created )
169170 local remaining_ttl = thawed .ttl - age
170171 if remaining_ttl > 0 then
171- ngx . shared . cache :set (key , entry , remaining_ttl )
172+ local_storage :set (key , entry , remaining_ttl )
172173 end
173174 end
174175
175176 return thawed .val , locally_cached
176177 end
177178end
178179
180+ function Storage :get_local_store (is_metadata )
181+ if is_metadata then
182+ return ngx .shared .cache_metadata
183+ else
184+ return ngx .shared .cache_entities
185+ end
186+ end
187+
179188function Storage :flush_expired ()
180- ngx .shared .cache :flush_expired (10 )
189+ ngx .shared .cache_locks :flush_expired (5 )
190+ ngx .shared .cache_metadata :flush_expired (5 )
191+ ngx .shared .cache_entities :flush_expired (5 )
181192end
182193
183194function Storage :keepalive ()
0 commit comments