通常redis下一般是在服务器上使用的,但是也有windows版本的。最近做了下vc2013下的程序,顺序在当前自己的电脑上windows布署了一下redis。
一:安装redis
下了个windows版本的redis。然后解压出来。先把redis.windows.conf 打开,然后将port 6379 改成自己所要的端口,我这边改成port 12000;同时将requirepass打开,后面的关键字改成 requirepass 123456,表示需要密码认证。
启动redis服务,在cmd的里面输入(当然cmd里面的目录得先切到redis解压出来 的目录)redis-server.exe --service-install redis.windows.conf,这样在系统 的服务里面就能看到redis这项了;接着redis-server --service-start 开启服务。
接着登录redis,输入redis-cli -p 12000,由于是加了鉴权的,输入 keys *,会显示出 “ NOAUTH Authentication required ”。这时要再输入auth 123456,这时再输入keys *,就会显示出当前有多少值 在redis。如下图:
二: 下载redis源码
(1)到网上下载redis源码,下载完成之后 ;点击sln文件,然后编译hiredis和Win32_Interop,生成hiredis.lib和Win32_Interop.lib;
(2)新建一个vc工程,选择控制台的程序 就ok;
(3) 将 “deps”和"src"这两个目录拷到当前的工程目录下,还有新建一个lib目录,将hiredis.lib和Win32_Interop.lib拷贝到lib的目录下。接着设置工程的属性;
(4)在工程的属性页里面,"c/c++"--->"常规"--->“附加包含目录" ,这里面把deps 和src包含进去;"c/c++"--->"预处理器"--->“预处理器定义",填上_CRT_SECURE_NO_WARNINGS 和_CRT_NONSTDC_NO_DEPRECATE;
(5)在工程的属性页里面,” 链接器“---->"常规"------>"附加库目录”,这里面把lib目录加上;同时” 链接器“---->输入"------>"附加库目录”,在里面加上hiredis.lib和Win32_Interop.lib;
(6)在int _tmain(int argc, _TCHAR* argv[])输入如下的代码
int _tmain(int argc, _TCHAR* argv[])
{
redisContext *c = redisConnect("127.0.0.1",12000);
if (c->err)
{
redisFree(c);
printf("connect to redisserver failed\n");
return 0;
}
printf("connect to redisserver success\n");
return 0;
}
编译,会报offset的错误。在网上找了很多的资料,按他们的方法都没有能解决当前的问题。最后只能重新再去找个redis对应的源码。找到了如下:
再把"c/c++"--->"常规"--->“附加包含目录",之前 的值删掉,改成包含这项include,就没有出现offset的错误了。这样程序就能正常运行成功的了。。