#ifndef REDIS_HEAD_FILE #define REDIS_HEAD_FILE #pragma once #include #include #include "winsock_initializer.h" #include #include #include #include #include template std:: string string_format(const std::string& format, Args ... args) { size_t size = snprintf(nullptr, 0, format.c_str(), args ...) + 1; // Extra space for '\0' std::unique_ptr buf(new char[size]); snprintf(buf.get(), size, format.c_str(), args ...); return std::string(buf.get(), buf.get() + size - 1); // We don't want the '\0' inside } //Redis操作基础类 #ifndef _DEBUG #pragma comment (lib,"cpp_redis.lib") #pragma comment (lib,"tacopie.lib") #else #pragma comment (lib,"cpp_redisD.lib") #pragma comment (lib,"tacopieD.lib") #endif class RedisBase { public: RedisBase(); ~RedisBase(); //连接redis bool Connect(const std::string& host = "127.0.0.1", std::size_t port = 6379, std::uint32_t db = 0, std::uint32_t timeout_ms = 0, std::int32_t max_reconnects = 0, std::uint32_t reconnect_interval_ms = 0); //断开和redis的连接 void DisConnect(bool wait_for_removal= false); std::shared_ptr GetRedisClient(); protected: std::shared_ptr m_redisclient; }; #endif // REDIS_HEAD_FILE