|
- #ifndef REDIS_HEAD_FILE
- #define REDIS_HEAD_FILE
- #pragma once
-
- #include <string>
- #include <cpp_redis/cpp_redis>
- #include "winsock_initializer.h"
- #include <cpp_redis/misc/macro.hpp>
- #include <memory>
- #include <iostream>
- #include <string>
- #include <cstdio>
-
- template<typename ... Args>
- 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<char[]> 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<cpp_redis::client> GetRedisClient();
-
- protected:
- std::shared_ptr<cpp_redis::client> m_redisclient;
- };
- #endif // REDIS_HEAD_FILE
|