An interface to Redis that mimic's Ruby's IO classes


Redis ( is a super awesome persisted key-value store.

Why are we still logging to files then?

Redisk is a set of Ruby classes that mimic's Ruby's built in IO classes to allow drop in replacement for logging and other fun things.


Currently, Redisk provides two main classes Redisk::IO and Redisk::Logger.

Redisk::IO implements most of the methods of Ruby's IO class (

require 'redisk'

io ='mylog.log') # not a file, a Redis List
io.puts "Log this!"
io.gets #=> "Log this!"
io.gets #=> nil
io.lineno = 2

Its much more interesting to use it with logger.

logger ='test.log))"Hahah, I'm logging to redis")

Theres also a nifty wrapper for that behavior:

logger ='test.log') "10 less characters!"

By default, Redisk uses the Redis on localhost:6379, but you can change that by setting

Redisk.redis = 'myhost:myport'

Check out the small but growing list of examples in examples/


Proudly tested and working on Ruby 1.8.6, 1.8.7, and 1.9.1

Gems are on gemcutter:

gem install redisk


redis running somewhere


Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.


Copyright © 2009 Aaron Quint. See LICENSE for details.