Expire_fragment with memcached


#1

Hello all,

We know that memcached or memcached-client doesn’t support regex… But
It seems it doesn’t support expire_fragment either :confused:

I’m trying to use expire_fragment with memcached as following :
expire_fragment(:controller => ‘home’, :action => :list_posts)

But apparently it’s not supported by memcached :

RuntimeError (Not supported by Memcache):
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/active_support/cache/mem_cache_store.rb:79:in
delete_matched' /usr/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_controller/caching/fragments.rb:128:inexpire_fragment’
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_controller/benchmarking.rb:26:in
benchmark' /usr/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_controller/benchmarking.rb:37:insilence’
/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_controller/benchmarking.rb:26:in
`benchmark’

Would anyone know how to use expire_fragment with memcached ?

Any help will be very appreciated !

Thank you !


#2

I’m using the timed fragment caching plugin (
http://github.com/georgepalmer/timed_fragment_cache/tree/master )
with memcached and i have no problems.

Have you configured your caching storage as memcached?

Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)

On Wed, Feb 18, 2009 at 11:33 AM, Marie A.


#3

Well, you could try to use the one i’m using, also, you shoudn’t need
to “delete” things from memcached, it does it by itself when it
reaches it’s memory limit.

Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)

On Wed, Feb 18, 2009 at 11:51 AM, Marie A.


#4

Of course…

I used to implement this plugin :
http://github.com/lacomartincik/memcache-store-with-delete_matched/tree/master

But after a while … When the memcached server starts to be filled up…
The plugin make my whole application freeze for some reasons… My proc
is used at 100% by dispatch.fcgi (I’m running on lightty). I don’t
understand why… Without the plugin and with file store… Everything is
fine and the proc used don’t go over 10%.

So I’m trying to come back to the basics and make it works without any
plugins !


#5

Maurício Linhares wrote:

Well, you could try to use the one i’m using, also, you shoudn’t need
to “delete” things from memcached, it does it by itself when it
reaches it’s memory limit.

Maur�cio Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)

On Wed, Feb 18, 2009 at 11:51 AM, Marie A.

Ok it’s working thank you :slight_smile:

Would you know how I can delete all the pages related to an action btw ?

I have in cache all the pages like :

/results/index?page=1
/results/index?page=2
/results/index?page=…
/results/index?page=654

How could I delete all the cache for my controller results and my action
index ?

expire_fragments(:controller => ‘results’, :action => ‘index’) obviously
doesn’t work !