Redis ACLのredis_stringクラス分析紹介(一)
12966 ワード
ACLライブラリを初めて認識します.今日はredisを見てstringクラスにはどのような一般的な操作が含まれていますか.
初期化
redis_stringには3つの構造関数があります.
Redis stringタイプに対応する単純なコマンド関数
初期化
redis_stringには3つの構造関数があります.
redis_string(void);
redis_string(redis_client *conn);
redis_string(reids_client_cluster * cluster, size_t max_conns=0);
Redis stringタイプに対応する単純なコマンド関数
bool set(const char* key, const char* value);//
bool set(const char* key, size_t key_len, const char* value, size_t value_len);
/**
*@timeout ( )
**/
bool setex(const char* key, const char* value, int timeout);
bool setex(const char* key, size_t key_len, const char* value, size_t value_len, int timeout);
/**
*@timeout ( )
**/
bool psetex(const char* key, const char* value, int timeout);
bool psetex(const char* key, size_t key_len, const char* value, size_t value_len, int timeout);
/**
*return {int}
* -1: key
* 0:
* 1:
**/
int setnx(const char* key, const char* value);
int setnx(const char* key, size_t key_len, const char* value, size_t value_len);
/**
*return {int}
* -1: key
* :
**/
int append(const char* key, const char* value);
int append(const char* key, const char* value, size_t size);
/**
*@param buff{string&}
**/
bool get(const char* key, string &buf);
bool get(const char* key, size_t len, string & buf);
/**
*return {int}
* key , ,
* , ,
* , :redis_result::get(size_t, size_t*)
* , redis_result::get_size() ???
**/
const redis_result* get(const char* key);
const redis_result* get(const char* key, size_t len);
bool getset(const char* key, const char* value, string& buf);
bool getset(const char* key, size_t key_len, const char* value, size_t value_len, string& buf);
/**
*return {int}
* -1: key
* 0: key
* >0:
**/
int get_strlen(const char* key);
int get_strlen(const char* key, size_t key_len);
/**
* value key , offset ,
* 。
* @param offset{unsigned}
* return {int}
*
**/
int setrange(const char* key, unsigned offset, const char* value);
int setrange(const char* key, size_t key_len, unsigned offset, coonst char* value, size_t value_len);
bool getrange(const char* key, int start, int end, string& buf);
bool getrange(const char* key, size_t key_len, int start, int end, string& buf);
bool mset(const std::map<string, string>& objs);
bool mset(const std::vector<string>& keys, const std::vector<string>& values);
bool mset(const char* keys[], const char* values[], size_t argc);
bool mset(const char* keys[], const size_t keys_len[], const char* values[], const size_t values_len[], size_t argc);
/**
*return {int}
* -1: key
* 0: , keys
* 1:
**/
int msetnx(const std::map<string, string>& objs);
int msetnx(const std::vector<string>& keys, const std::vector<string>& values);
int mset(const char* keys[], const char* values[], size_t argc);
int mset(const char* keys[], const size_t keys_len[], const char* values[], const size_t values_len[], size_t argc[]);
bool mget(const std::vector<string>& keys, std::vector<string>* out=NULL);
bool mget(const std::vector<const char*>& keys, std::vector * out=NULL);
bool mget(std::vector<string>* result, const char* first_key, ...);
bool mget(const char* keys[], size_t argc, std::vector<string>* out=NULL);
bool mget(const char* keys[], const size_t keys_len[], size_t argc, std::vector<string>* out=NULL);
bool incr(const char* key, long long int* result=NULL);
/**
* 1) key , key 0, incrby
* 2) , Wie ,
* 3) 64 (bit)
* @param result{long long int}
**/
bool incrby(const char* key, long long int inc, long long int* result=NULL);
/**
* 1) key , key 0, incrby
* 2) , key ,
*
* 3)
* @param result{long long int}
**/
bool incrbyfloat(const char* key, double inc, double* result=NULL);
decr(const char* key, long long int* result=NULL);