I've been digging into this a little bit more.
The problem seems to be in redis-3.0.3/lib/redis/connection.ruby.rb, where #initialize of Redis::Connection::SocketMixin (line 12) isn't being called for the Redis::Connection::TCPSocket (line 113).
I'm not sure where the problem #initialize is that isn't calling super, but the class hierarchy is:
Redis::Connection::TCPSocket
Redis::Connection::SocketMixin
Socket
Socket::Constants
BasicSocket
IO
Enumerable
File::Constants
Object
Kernel
On a probably unrelated note, I tried working around the lack of #initialize by modifying Redis::Connection::SocketMixin#gets to run @buffer ||= "" at the beginning, but that led me to another error where IO#read_nonblock from ruby core apparently doesn't exist in Maglev.
--
Jamie