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

初识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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值