8#include <boost/asio.hpp>
10#include <aedis/src.hpp>
12namespace net = boost::asio;
13namespace resp3 = aedis::resp3;
18void log(boost::system::error_code
const& ec,
char const* prefix)
20 std::clog << prefix << ec.message() << std::endl;
23auto main(
int argc,
char * argv[]) ->
int
26 std::string host =
"127.0.0.1";
27 std::string port =
"6379";
37 req.
push(
"PING",
"Hello world");
41 std::tuple<aedis::ignore, std::string, aedis::ignore> resp;
46 net::ip::tcp::resolver resv{ioc};
50 net::ip::tcp::resolver::results_type endpoints;
53 auto on_run = [](
auto ec)
56 return log(ec,
"on_run: ");
60 auto on_exec = [&](
auto ec,
auto)
63 conn.cancel(operation::run);
64 return log(ec,
"on_exec: ");
67 std::cout <<
"PING: " << std::get<1>(resp) << std::endl;
71 auto on_connect = [&](
auto ec,
auto)
74 return log(ec,
"on_connect: ");
76 conn.async_run(on_run);
77 conn.async_exec(req,
adapt(resp), on_exec);
81 auto on_resolve = [&](
auto ec,
auto const& addrs)
84 return log(ec,
"on_resolve: ");
87 net::async_connect(conn.next_layer(), endpoints, on_connect);
90 resv.async_resolve(host, port, on_resolve);
95 }
catch (std::exception
const& e) {
96 std::cerr <<
"Error: " << e.what() << std::endl;
A connection to the Redis server.
void push(std::string_view cmd, Ts const &... args)
Appends a new command to the end of the request.
auto adapt(std::size_t max_read_size=(std::numeric_limits< std::size_t >::max)()) noexcept
Creates an adapter that ignores responses.
operation
Connection operations that can be cancelled.