上篇部落格已經寫過,為了清楚的演示,再寫一遍。
tar -zxvf redis-2.8.7.tar.gz
cd redis-2.8.7
sudo apt-getinstall tcl(redis測試程式需要tcl版本至少為8.5)
make 32bit(64位系統直接使用make即可)
sudo make prefix=/usr/local/redis install(預設sudo make install將編譯生成的可執行檔案拷貝到/usr/local/redis/bin目錄下;prefix更改一下目錄)
把redis-2.8.7目錄中的redis.conf複製到/usr/local/redis/bin目錄,有的道友喜歡放在
/bin目錄下,只要自己額能找到就可以了。
make test(用於確認安裝正確與否)
編譯生成的可執行檔案有:
1. redis-server redis伺服器
2. redis-cli redis客戶端
3. redis-benchmark redis效能測試工具
4. redis-check-aof aof檔案修復工具
5. redis-check-dump rdb檔案檢查工具
6. redis-sentinel redis集群管理工具
編譯、安裝完成後,在終端中輸入redis-server
以最簡單的方式啟動redis服務端,然後在另乙個終端中輸入redis-cli
來連線redis服務端,接下來可以嘗試各種命令了,可以在預習下redis的各種命令,還可以在redis官網檢視redis支援的命令。
git clone
cd hiredis
make
sudo make install(複製生成的庫到/usr/local/lib目錄下)
sudo ldconfig /usr/local/lib
hiredis是redis資料庫的c介面,目前只能在linux下使用,幾個基本的函式就可以操作redis資料庫了。
函式原型:rediscontext *redisconnect(const char *ip, int port);
說明:該函式用來連線redis
資料庫,引數為資料庫的ip位址和埠,一般redis資料庫的埠為6379;
函式返回值:該函式返回乙個結構體rediscontext;
類似的提供了乙個函式rediscontext* redisconnectwithtimeout(const char *ip, int port, timeval tv),以帶有超時的方式連線redis伺服器,同時獲取與redis連線的上下文物件。
函式原型:void *rediscommand(rediscontext *c, const char *format, ...);
說明:該函式執行命令,就如sql資料庫中的sql語句一樣,只是執行的是redis資料庫中的操作命令,第乙個引數為連線資料庫時返回的rediscontext,剩下的引數為變參,就如c標準函式printf函式一樣的變參。
函式返回值:返回值為void*,一般強制轉換成為redisreply型別,以便做進一步處理。
函式原型void freereplyobject(void *reply);
說明:釋放rediscommand執行後返回的redisreply所占用的記憶體;
函式返回值:無。
函式原型:void redisfree(rediscontext *c);
說明:釋放redisconnect()所產生的連線。
函式返回值:無。
下面用乙個簡單的例子說明:
#include #include #include #include #include #include #include void dotest()printf("connect to redisserver success\n");
const char* command1 = "set stest1 value1";
redisreply* r = (redisreply*)rediscommand(c, command1);
if( null == r)
if( !(r->type == redis_reply_status && strcasecmp(r->str,"ok")==0))
freereplyobject(r);
printf("succeed to execute command[%s]\n", command1);
const char* command2 = "strlen stest1";
r = (redisreply*)rediscommand(c, command2);
if ( r->type != redis_reply_integer)
int length = r->integer;
freereplyobject(r);
printf("the length of 'stest1' is %d.\n", length);
printf("succeed to execute command[%s]\n", command2);
const char* command3 = "get stest1";
r = (redisreply*)rediscommand(c, command3);
if ( r->type != redis_reply_string)
printf("the value of 'stest1' is %s\n", r->str);
freereplyobject(r);
printf("succeed to execute command[%s]\n", command3);
const char* command4 = "get stest2";
r = (redisreply*)rediscommand(c, command4);
if ( r->type != redis_reply_nil)
freereplyobject(r);
printf("succeed to execute command[%s]\n", command4);
redisfree(c);
}
int main()
官網中文官網
開發版本原始碼
命令參考
系類文章
設計與實現
注釋版redis原始碼
Wamp 以及 Linux 下使用 Redis
資料表中資料達到萬條以及訪問量增高,來使用 redis 來提高 高可用訪問。wamp下的使用 1 尋找對應版本並安裝 redis 和 igbinary 2 使用 進入對應位數目錄下執行 開啟 redis redis server.exe redis.conf 開啟新視窗,還在原來的redis目錄下執...
Redis的簡介以及Linux下redis環境安裝
redis的特點 linux環境安裝redis環境 2.解壓至linux系統中 3.安裝gcc yum install y gcc 4.執行make命令 make malloc lib 我使用的是寶塔面板一鍵安裝,所以上面的步驟都可以省略 寶塔面板安裝 在它的資料夾下 www檔案下的server資料...
Redis資料結構以及Strings型操作
redis資料結構圖 strings型 keys 檢視所有key get 獲取key的value值 向key對應的value追加內容 判斷key是否存在,存在返回 1,不存在返回 當key存在會把 key原來的值覆蓋 當該key存在,不覆寫掉該原值,如果 key不存在,則建立 支援同時插入多個key...