1#ifndef NEFORCE_DATABASE_REDIS_CONNECT_HPP__
2#define NEFORCE_DATABASE_REDIS_CONNECT_HPP__
11#ifdef NEFORCE_SUPPORT_HIREDIS
12# include <hiredis/hiredis.h>
14NEFORCE_BEGIN_NAMESPACE__
45 ::redisContext* link_ =
nullptr;
46 mutable string last_error_;
50 bool authenticate(
const string& password)
const;
51 bool select_database(
const string& db_index)
const;
91 NEFORCE_DEPRECATED_FOR(
"Redis not support setting character sets")
98 NEFORCE_DEPRECATED_FOR(
"Redis not support setting character sets")
118 bool update(
const string& sql)
const override;
131 bool connected() const noexcept
override {
return link_ !=
nullptr && link_->err == 0; }
145 bool set(
const string& key,
const string& value)
override;
146 bool setex(
const string& key,
const string& value,
int seconds)
override;
148 bool del(
const string& key)
override;
152 bool hset(
const string& key,
const string& field,
const string& value)
override;
156 bool lpush(
const string& key,
const string& value)
override;
157 bool rpush(
const string& key,
const string& value)
override;
160 bool sadd(
const string& key,
const string& member)
override;
197NEFORCE_END_NAMESPACE__
idb_factory(db_config config) noexcept
构造函数
redis_factory(db_config config)
构造函数
idb_result * create_result(void *native_result) override
创建Redis结果集对象
idb_connect * create_connect() override
创建Redis连接对象
unsigned int uint32_t
32位无符号整数类型
duration< int64_t > seconds
秒持续时间
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
basic_string_view< char > string_view
字符字符串视图
virtual void close()=0
关闭连接
unique_ptr< idb_kv_result > query(const string &sql) const override
执行查询命令
bool set(const string &key, const string &value) override
SET命令
bool del(const string &key) override
DEL命令
bool rollback() override
回滚事务
unique_ptr< idb_kv_result > lrange(const string &key, int start, int stop) override
LRANGE命令
void * native_handle() noexcept override
获取原生连接句柄
bool connected() const noexcept override
检查连接是否已建立
bool update(const string &sql) const override
执行非查询命令
bool exists(const string &key) override
EXISTS命令
bool lpush(const string &key, const string &value) override
LPUSH命令
unique_ptr< idb_kv_result > hgetall(const string &key) override
HGETALL命令
string_view get_character_set() const noexcept override
获取字符集(Redis不支持)
void close() noexcept override
关闭Redis连接
bool set_character_set(const string &) noexcept override
设置字符集(Redis不支持)
~redis_connect() override
析构函数
bool hset(const string &key, const string &field, const string &value) override
HSET命令
bool is_valid() const override
检查连接是否有效
bool setex(const string &key, const string &value, int seconds) override
SETEX命令(带过期时间)
unique_ptr< idb_kv_result > hget(const string &key, const string &field) override
HGET命令
bool begin() override
开始事务
bool commit() override
提交事务
bool reconnect(const db_config &config) override
重新连接
bool expire(const string &key, int seconds) override
EXPIRE命令
uint32_t get_errno() const noexcept override
获取最后错误码
string_view get_error() const override
获取最后错误信息
unique_ptr< idb_kv_result > get(const string &key) override
GET命令
bool connect(const db_config &config) override
建立Redis连接
redis_connect()=default
默认构造函数
bool sadd(const string &key, const string &member) override
SADD命令
unique_ptr< idb_kv_result > smembers(const string &key) override
SMEMBERS命令
bool rpush(const string &key, const string &value) override
RPUSH命令