Redis安裝及C++調用redis

一、Redis現在及安裝

下載網址:http://redis.io/download

下載方式:

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服務

  1. 拷貝redis.conf

  2. cd /usr/local/redis/conf

  3. cp redis.conf redis.conf.bak && cp redis.conf redis16379.conf && cp redis.conf redis16380.conf

  4. 更改redis.conf,其中daemonize是否作爲守護進行,開啓,改爲yes;更改port爲你需要值(也可不該)

  5. 在/usr/local/bin目錄下執行:./redis-server ../conf/redis16379.conf

  6. 查看連接狀態:redis-cli -h localhost -p 16379  最後的16379 即是剛纔的port部分

  7. 成功後會出現redis local:16379>的形式

  8. 輸入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在程序中方法更詳細

發佈了10 篇原創文章 · 獲贊 21 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章