一、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在程序中方法更詳細