windows下redis 和 hiredis的编译与使用

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> windows下redis 和 hiredis的编译与使用

编译环境,32位windows7,VS2013

获取redis windows版

编译 redis:

1.解压到redis(文件夹名字自定义),打开msvs用vs 打开RedisServer.sln项目,编译全部。

2.编译完成后在DUBUG里面找5个EXE文件,分别是redis-benchmark.exe,redis-check-aof.exe,redis-check-dump.exe,redis-cli.exe,redis-server.exe

把5个EXE复制到redis的根目录下即可(与bin文件夹同目录),它们的作用如下:

redis-server:Redis服务器的daemon启动程序

redis-cli:Redis命令行操作工具。也可以用telnet根据其纯文本协议来操作

redis-benchmark:Redis性能测试工具,测试Redis在当前系统下的读写性能

redis-check-aof:数据修复

redis-check-dump:检查导出工具

3.修改redis配置文件,根目录下的redis.conf文件

参数介绍:

daemonize:是否以后台daemon方式运行

pidfile:pid文件位置

port:监听的端口号

timeout:请求超时时间

loglevel:log信息级别

logfile:log文件位置

databases:开启数据库的数量

save * :保存快照的频率,第一个表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。

rdbcompression:是否使用压缩

dbfilename:数据快照文件名(只是文件名,不包括目录)

dir:数据快照的保存目录(这个是目录)

appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。

appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

 

4.启动redis

进入redis目录后 开启服务  (注意加上redis.conf)

这个窗口要保持开启  关闭时redis服务会自动关闭redis会自动保存数据到硬盘 

 

5.测试使用

另外开启一个命令行窗口 进入redis目录下 (注意修改自己的ip)

 

编译 hiredis(其实上面编译全部reids的时候已经编译过的):

1.编译两个lib: hiredis.lib和Win32_Interop.lib

打开从GitHub上clone下来的文件夹,打开里面的msvs文件夹中的RedisServer.sln

从解决方案资源管理器窗口编译hiredis工程和Win32_Interop工程(调试的时候请在debug模式下编译这两个库),此时便会在Debug/Release文件夹下生成这两个工程编译的lib

2.在自己的工程中使用

(1)添加上一步编译的这两个lib到工程中

(2)复制GItHub redis项目文件夹中src/Win32_Interop下所有头文件

(3)以及deps/hiredis下所有头文件(其中fmacros.h用src文件夹下的fmacros.h文件替代)

(4)再复制src/Win32_Interop/win32fixes.c到自己的工程目录,包含到工程文件中

(5)调整各个文件include的路径

(6)示例代码

 

PS.可能会碰到的编译错误

 

1.必须定义入口点,请在win32fixes.h之前加上#define NO_QFORKIMPL

2.各种与其他库的使用冲突,请右击项目->属性->配置属性->C/C++->代码生成->运行库->改成多线程调试(/MTd)或多线程(/MT)

并且在右击项目->属性->配置属性->连接器->命令行中输入/NODEFAULTLIB:libcmt.lib

3.error C4996,各种unsafe报错啊,请右击项目->属性->配置属性->C/C++->预处理器->预处理器定义->添加“_CRT_SECURE_NO_WARNINGS”(不带引号)

 

作者:

出处:

原文地址:https://sihai.blog.csdn.net/article/details/88904692

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> windows下redis 和 hiredis的编译与使用


 上一篇
Docker搭建、启动、关闭MySQL服务 Docker搭建、启动、关闭MySQL服务
Docker开源镜像前面我们已经安装好了Docker,也简单了解了Docker。那么我们可以尝试搭建一个MySQL服务。 要搭建服务就要启动服务容器,要创建容易就要有镜像,Docker提供了一个类似Github的开源平台,提供开源镜像,放心
2021-04-04
下一篇 
will not add file alias already exists in index(git上传代码出错) will not add file alias already exists in index(git上传代码出错)
一 问题描述今天在用git上传代码的时候,发现一个问题,以前从来没有遇到过,今天也是运气好,就被我碰到了,不过,每件事情有有果必有因,也是前面修改了一些文件才导致的,下面讲讲为什么会出现这个问题,然后怎么解决的? 二 问题原因这个错误的描述
2021-04-04