+=head1 Connection Handling
+
+=head2 quit
+
+ $r->quit;
+
+=cut
+
+sub quit {
+ my $self = shift;
+
+ close( $sock ) || warn $!;
+}
+
+=head2 ping
+
+ $r->ping || die "no server?";
+
+=cut
+
+sub ping {
+ print $sock "PING\r\n";
+ my $pong = <$sock>;
+ die "ping failed, got ", dump($pong) unless $pong eq "+PONG\r\n";
+}
+
+=head1 Commands operating on string values
+
+=head2 set
+
+ $r->set( foo => 'bar' );
+
+=cut
+
+sub set {
+ my ( $self, $k, $v ) = @_;
+ print $sock "SET $k " . length($v) . "\r\n$v\r\n";
+ my $ok = <$sock>;
+ die dump($ok) unless $ok eq "+OK\r\n";
+}
+
+=head2 get
+
+ my $value = $r->get( 'foo' );