9#include <boost/redis/connection.hpp>
10#include <boost/redis/logger.hpp>
12#include <boost/asio/detached.hpp>
13#include <boost/system/error_code.hpp>
17#include <spdlog/spdlog.h>
20namespace asio = boost::asio;
21namespace redis = boost::redis;
24static spdlog::level::level_enum to_spdlog_level(redis::logger::level lvl)
30 case redis::logger::level::emerg:
31 case redis::logger::level::alert:
32 case redis::logger::level::crit:
return spdlog::level::critical;
33 case redis::logger::level::err:
return spdlog::level::err;
34 case redis::logger::level::warning:
return spdlog::level::warn;
35 case redis::logger::level::notice:
36 case redis::logger::level::info:
return spdlog::level::info;
37 case redis::logger::level::debug:
38 default:
return spdlog::level::debug;
45static void do_log(redis::logger::level level, std::string_view msg)
47 spdlog::log(to_spdlog_level(level),
"(Boost.Redis) {}", msg);
50auto main(
int argc,
char* argv[]) ->
int
53 std::cerr <<
"Usage: " << argv[0] <<
" <server-host> <server-port>\n";
77 conn.async_run(cfg, asio::detached);
81 req.
push(
"PING",
"Hello world");
85 conn.async_exec(req, resp, [&](boost::system::error_code ec, std::size_t ) {
87 spdlog::error(
"Request failed: {}", ec.what());
90 spdlog::info(
"PING: {}", std::get<0>(resp).value());
98 }
catch (std::exception
const& e) {
99 spdlog::error(
"Error: {}", e.what());
A basic_connection that type erases the executor.
void push(std::string_view cmd, Ts const &... args)
Appends a new command to the end of the request.
address addr
Address of the Redis server.
std::string port
Redis port.
std::string host
Redis host.
std::tuple< adapter::result< Ts >... > response
Response with compile-time size.
Configure parameters used by the connection classes.
Defines logging configuration.