一、Redis现在及安装
下载方式:
wget http://download.redis.io/releases/redis-2.8.3.tar.gz
下载不同的版本,可以通过更改后面的版本号来下载
然后执行:
$ tar xzf redis-2.8.3.tar.gz $ cd redis-2.8.3 $ make
这样你就可以在src文件下得到redis-server和redis-cli两个文件
二、Redis本机配置
1.如果是root用户可以在utils中执行 sh install_server.sh即可,注:该目录在高版本才有
2.如果不是root用户,执行
mkdir -p /usr/local/redis/bin & mkdir -p /usr/local/redis/conf & mkdir -p /usr/local/redis/log
在Redis解压目录下执行
cp ./src/redis-server ./src/redis-cli /usr/local/redis/bin/
cp redis.conf /usr/local/redis/conf
将/usr/local/redis/bin加入到PATH中:方法PATH=$PATH:/usr/local/redis/bin
三、运行Redis服务
-
拷贝redis.conf
-
cd /usr/local/redis/conf
-
cp redis.conf redis.conf.bak && cp redis.conf redis16379.conf && cp redis.conf redis16380.conf
-
更改redis.conf,其中daemonize是否作为守护进行,开启,改为yes;更改port为你需要值(也可不该)
-
在/usr/local/bin目录下执行:./redis-server ../conf/redis16379.conf
-
查看连接状态:redis-cli -h localhost -p 16379 最后的16379 即是刚才的port部分
-
成功后会出现redis local:16379>的形式
-
输入shutdown退出,或者ctrl+d
四、在C/C++程序中调用redis
示例:
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <stdarg.h>
#include <string.h>
#include <assert.h>
#include <hiredis.h>
void doTest()
{
int timeout = 10000;
struct timeval tv;
tv.tv_sec = timeout/1000;
tv.tv_usec = timeout*1000;
redisContext *c = redisConnect((char*)"127.0.0.1",16379);
if (c->err)
{
redisFree(c);
return;
}
}
int main()
{
doTest();
return 0;
}
保存为conRedis.cpp文件
然后编译,编译需要头文件目录,依赖库目录,位于redis-2.8.3目录下的deps/hiredis目录中
g++ conRedis.cpp -o test -I./deps/hiredis/ -L./deps/hiredis/ -lhiredis (即是调用libhiredis.a库)
按以上步骤操作,恭喜你成功了!
五、自己的一些见解
在源程序中redisFree与freeRedisObject后指针没有赋值给NULL,编程一个野指针,当你两个调用redisFree或freeRedisObject时会出现中断的执行的情况,可以重新定义函数
void free_redis_con()
{
redisFree(c);
c = NULL;
}
对freeRedisObject也是相同的原理,这样在下次释放的时候可以通过判定if (c == NULL)来判定,是否已经释放过,也可以在编译redis的时候在源程序中更改,文件(hiredis.c).
六、redis命令参考
http://redis.readthedocs.org/en/latest/
这个网站关于redis的命令很详细
http://blog.csdn.net/wenchao126/article/details/8015957
这篇博客介绍了在程序中使用redis
http://www.cnblogs.com/stephen-liu74/archive/2012/03/15/2398249.html
这篇博客关于redis在程序中方法更详细