Redis ACLのredis_stringクラス分析紹介(一)

12966 ワード

ACLライブラリを初めて認識します.今日は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);