Skip to content

Instantly share code, notes, and snippets.

@tailhook
Created October 3, 2016 22:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tailhook/2e2a77e78fef360cd2fe4f38ce17c2bd to your computer and use it in GitHub Desktop.
Save tailhook/2e2a77e78fef360cd2fe4f38ce17c2bd to your computer and use it in GitHub Desktop.
extern crate env_logger;
extern crate futures;
extern crate abstract_ns;
extern crate tokio_core;
extern crate tokio_redis as redis;
extern crate ns_dns_tokio;
use std::error::Error;
use abstract_ns::Resolver;
use futures::Future;
use tokio_core::reactor::Core;
use redis::Client;
use ns_dns_tokio::DnsResolver;
pub fn main() {
env_logger::init().unwrap();
let mut lp = Core::new().unwrap();
let resolver = DnsResolver::system_config(&lp.handle())
.expect("initialize DNS resolver");
let handle = lp.handle();
let fut = resolver.resolve("localhost:6379")
.map_err(|e| Box::new(e) as Box<Error>)
.and_then(|addresses| {
let client = Client::new().connect(&handle,
&addresses.pick_one().unwrap());
let r1 = client.set("zomghi2u", "SOME VALUE");
r1.and_then(move |_| client.get("zomghi2u"))
.map_err(|e| Box::new(e) as Box<Error>)
});
let val = lp.run(fut).unwrap();
println!("RESPONSE: {:?}", val);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment