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