Redis ACL之redis_string类分析介绍(一)

来源:互联网 发布:html数据展示样式 编辑:程序博客网 时间:2024/05/21 22:51

初识ACL库。
今天查看redis_string类包含哪些常用操作;

初始化

redis_string有三个构造函数分别为

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<sting>* 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);
0 0
原创粉丝点击