Orbit Framework
An ultra-modern, asynchronous, cross-platform C++ Web Framework.
Loading...
Searching...
No Matches
RedisClient.hpp
Go to the documentation of this file.
1#pragma once
2#include <string>
3#include <vector>
4#include <optional>
5#include <mutex>
7
8namespace database {
9
14public:
21 RedisClient(const std::string& host, int port);
23
29 bool connect();
30
34 void disconnect();
35
41 std::string ping();
42
51 bool set(const std::string& key, const std::string& value, int expire_seconds = 0);
52
59 std::optional<std::string> get(const std::string& key);
60
67 long long incr(const std::string& key);
68
76 bool expire(const std::string& key, int seconds);
77
78private:
79 std::string send_command(const std::vector<std::string>& args);
80 std::string read_response();
81
82 std::string host_;
83 int port_;
84 int fd_{-1};
85 std::mutex mutex_; // Thread-safe for shared use across worker threads
86};
87
88} // namespace database
A synchronous Redis client providing core operations.
Definition RedisClient.hpp:13
bool connect()
Connects to the Redis server.
Definition RedisClient.cpp:16
long long incr(const std::string &key)
Increments the integer value of a key by one.
Definition RedisClient.cpp:156
bool set(const std::string &key, const std::string &value, int expire_seconds=0)
Sets a key to hold a string value with an optional expiration time.
Definition RedisClient.cpp:140
~RedisClient()
Definition RedisClient.cpp:12
void disconnect()
Disconnects from the Redis server.
Definition RedisClient.cpp:46
std::string ping()
Sends a PING command to the Redis server.
Definition RedisClient.cpp:136
std::optional< std::string > get(const std::string &key)
Gets the value of a key.
Definition RedisClient.cpp:150
bool expire(const std::string &key, int seconds)
Sets a timeout on a key.
Definition RedisClient.cpp:166
Definition ConnectionPool.hpp:10