博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sword redis存取二进制数据
阅读量:7027 次
发布时间:2019-06-28

本文共 2970 字,大约阅读时间需要 9 分钟。

#include "hiredis/hiredis.h"   /* redis头文件 */#include 
#include
#include
#include
#include
//初始化int init(const char *ip,uint16_t port){ redisContext *_context; //创建redis链接 _context = redisConnect(ip, port); if (NULL == _context) { return -1; } return 0;}//二进制数据set操作/******************************************************** Func Name: getInstanceDate Created: 2018-10-12 Description: 创建实例对象 Input:@key: key值 @value: value值 @vlen: value数据长度 Output: Return: error code Caution:*********************************************************/int set(redisContext *_context, const char *key, uint8_t *value, uint32_t vlen){ /* 为什么argv数组长度是5 set key value ex time 元素1 元素2 元素3 元素4 元素5 */ const char * argv[5] = { 0 }; //用来存储所有的数据 size_t argvlen[5] = { 0 }; //用来存储数据的长度 redisReply *rep = NULL; std::string strRes; if (NULL == key || NULL == value || 0 == vlen) { return -1; } argv[0] = "set"; argvlen[0] = strlen("set"); argv[1] = key; argvlen[1] = strlen(key); argv[2] = (char *)value; argvlen[2] = vlen; //设置超时时间 argv[3] = "ex"; argvlen[3] = strlen("ex"); argv[4] = "3600"; argvlen[4] = strlen("3600"); rep = (redisReply *)redisCommandArgv(_context, 5, argv, argvlen); if (NULL == rep) { return -1; } if (REDIS_REPLY_STATUS == rep->type) { strRes = rep->str; } freeReplyObject(rep); rep = NULL; return ("OK" == strRes ? 0 : -1);}/******************************************************** Func Name: getDate Created: 2018-12-11 Description: get Input: Output: Return: error code Caution:*********************************************************/int get(redisContext *_context, const char *key, uint8_t *&value, uint32_t &vlen){ redisReply *rep = NULL; char *cmd = NULL; if (NULL == key) { return -1; } cmd = (char *)malloc(strlen(key) + strlen("get") + 10); if (NULL == cmd) { return -1; } memset(cmd, 0, strlen(key) + strlen("get") + 10); sprintf(cmd, "get %s", key); rep = (redisReply *)redisCommand(_context, cmd); if (NULL == rep) { return -1; } vlen = rep->len; if (rep->len <= 0) { return -1; } value = (uint8_t *)malloc(vlen); if (NULL == value) { return -1; } memset(value, 0, vlen); memcpy(value, rep->str, rep->len); freeReplyObject(rep); rep = NULL; return 0;}
问题:客户端无法登录Redis服务器报错,解除保护模式解决方案1、修改redis服务器的配置文件vi redis.conf   注释以下绑定的主机地址# bind 127.0.0.1 2、修改redis服务器的参数配置 修改redis的守护进程为no ,不启用127.0.0.1:6379> config set daemonize "no"OK 修改redis的保护模式为no,不启用127.0.0.1:6379> config set protected-mode "no"注意:修改redis服务器的参数配置,只能通过redis-cli客户端修改(直接修改redis.conf没有效果),如果redis服务器重启了,那么修改将会失效

 

转载地址:http://yloxl.baihongyu.com/

你可能感兴趣的文章
html基础之 input:type
查看>>
json-lib简单处理json和对json的简单介绍
查看>>
jquery checkbox选中、改变状态、change和click事件
查看>>
java joor 实现反射简单调用
查看>>
membership与成员资格
查看>>
Guava 8-区间
查看>>
自定义Spark Partitioner提升es-hadoop Bulk效率
查看>>
总结一些机器视觉库
查看>>
在CentOS Linux下部署Activemq 5
查看>>
把mysql脚本或其他数据库脚本导入Powerdesigner
查看>>
phalcon 连接多个数据库 phalcon multi-database
查看>>
React Native(十一)——按钮重复点击事件的处理
查看>>
zepto jquery和zepto的区别?
查看>>
机器学习笔记(4):多类逻辑回归-使用gluton
查看>>
26.angularJS $routeProvider
查看>>
内存映射函数remap_pfn_range学习——示例分析(2)
查看>>
年轻的工程师如何月入伍万XD
查看>>
NAT64与DNS64基本原理概述
查看>>
Java-Shiro(四):Shiro
查看>>
Oracle 备份、恢复单表或多表数据步骤
查看>>