public
Description: Lean & mean Tokyo Cabinet recipes (with Lua)
Homepage:
Clone URL: git://github.com/igrigorik/tokyo-recipes.git
igrigorik (author)
Wed Jul 08 22:23:48 -0700 2009
commit  cec510f5419793e3331c5dd97487764133e6e79e
tree    aa689037031c3a4c362369bfc60477ffa112ce7c
parent  3cc1202c4939718b284799c29295608588f58bba
tokyo-recipes / expire
name age message
..
file README.rdoc Tue Jul 07 21:58:33 -0700 2009 [igrigorik]
file expire.lua Tue Jul 07 21:06:14 -0700 2009 record expiry (TTL) with Lua and peridic script... [igrigorik]
file expire.rb Tue Jul 07 21:06:14 -0700 2009 record expiry (TTL) with Lua and peridic script... [igrigorik]
expire/README.rdoc

Auto record expire based on TTL

Implements TTL-based record expiry via a Lua script which is periodically executed by the TC runtime.

  • The calling period is customizable via -extpc flag
  • Data is stored inside a ‘table’ engine where key ‘x’ stores the unix timestamp for the expiry date
  • Lua cleanup script is called periodically to scan the database for keys ready to be removed, which are then purged from the DB.

Starting server

  # call expire script every 5 seconds
  > ttserver -ext expire.lua -extpc expire 5 "casket.tct#idx=x:dec#bnum=2000000"

Executing via Ruby

  > ruby expire.rb
  > nil
  > {"name"=>"bob", "x"=>"1247025691"}