介紹 Redis的全稱是Remote Dictonary Server(遠(yuǎn)程字典服務(wù)器),redis是由Salvatore Sanfilippo寫的一個高性能key-value存儲系統(tǒng),Redis有如下優(yōu)點(diǎn): 1. 高性能 - Redis能支持超過100K+每秒的讀寫頻率 2. 豐富的數(shù)據(jù)類型 - Redis支持Strings、Lists、Hashes、S
Redis的全稱是Remote Dictonary Server(遠(yuǎn)程字典服務(wù)器),redis是由Salvatore Sanfilippo寫的一個高性能key-value存儲系統(tǒng),Redis有如下優(yōu)點(diǎn):
1. 高性能 - Redis能支持超過100K+每秒的讀寫頻率
2. 豐富的數(shù)據(jù)類型 - Redis支持Strings、Lists、Hashes、Sets及Ordered Sets等數(shù)據(jù)類型
3. 原子性 - Redis的所有操作都是原子性的,同時Redis還支持對幾個操作合并后的原子操作
4. 豐富的特性 - Redis還支持發(fā)布/訂閱、事務(wù)、key過期等特性
打開Redis官網(wǎng),進(jìn)入下載頁面,選擇一個適合自己電腦的版本下載即可,下載飛機(jī)票http://redis.io/download,下載完成后解壓、編譯、安裝,依次在終端下執(zhí)行如下命令:
tar -zxvf redis-2.8.7.tar.gz
cd redis-2.8.7
sudo apt-get install tcl(redis測試程序需要tcl版本至少為8.5)
make 32bit(64位系統(tǒng)直接使用make即可)
sudo make install(將編譯生成的可執(zhí)行文件拷貝到/usr/local/bin目錄下)
make test(用于確認(rèn)安裝正確與否)
編譯生成的可執(zhí)行文件有:
1. redis-server redis服務(wù)器
2. redis-cli redis客戶端
3. redis-benchmark redis性能測試工具
4. redis-check-aof aof文件修復(fù)工具
5. redis-check-dump rdb文件檢查工具
6. redis-sentinel redis集群管理工具
編譯、安裝完成后,在終端中輸入redis-server
以最簡單的方式啟動redis服務(wù)端,然后在另一個終端中輸入redis-cli
來連接redis服務(wù)端,接下來可以嘗試各種命令了,可以在http://try.redis.io預(yù)習(xí)下redis的各種命令,還可以在redis官網(wǎng)查看redis支持的命令。
需要使用C/C++操作Redis,就需要安裝C/C++ Redis Client Library,這里我使用的是hiredis,這是官方使用的庫,而且用得人比較多,在終端下依次執(zhí)行下列命令進(jìn)行下載、安裝:
git clone https://github.com/redis/hiredis
cd hiredis
make
sudo make install(復(fù)制生成的庫到/usr/local/lib目錄下)
sudo ldconfig /usr/local/lib
所有的準(zhǔn)備工作已經(jīng)做完了,接下來測試下如何使用C/C++操作Redis,代碼如下:
#include
#include
#include
int main(int argc, char **argv)
{
struct timeval timeout = {2, 0}; //2s的超時時間
//redisContext是Redis操作對象
redisContext *pRedisContext = (redisContext*)redisConnectWithTimeout("127.0.0.1", 6379, timeout);
if ( (NULL == pRedisContext) || (pRedisContext->err) )
{
if (pRedisContext)
{
std::cout << "connect error:" << pRedisContext->errstr << std::endl;
}
else
{
std::cout << "connect error: can't allocate redis context." << std::endl;
}
return -1;
}
//redisReply是Redis命令回復(fù)對象 redis返回的信息保存在redisReply對象中
redisReply *pRedisReply = (redisReply*)redisCommand(pRedisContext, "INFO"); //執(zhí)行INFO命令
std::cout << pRedisReply->str << std::endl;
//當(dāng)多條Redis命令使用同一個redisReply對象時
//每一次執(zhí)行完Redis命令后需要清空redisReply 以免對下一次的Redis操作造成影響
freeReplyObject(pRedisReply);
return 0;
}
保存退出,執(zhí)行g++ OperatorRedis.cpp -o OperatorRedis -lhiredis
進(jìn)行編譯,編譯完成后執(zhí)行./OperatorRedis
運(yùn)行程序(在運(yùn)行程序前需要啟動redis服務(wù)端,否則會得到connect error:Connection refused
這樣的錯誤),不出意外的話會看到輸出的redis服務(wù)器信息~
好了,C++操作Redis先進(jìn)行到這里了,我這邊封裝了一個C++操作Redis的類,等完善后會放出來...
作者:hahaya
出處:http://hahaya.github.com/operator-redis-under-linux
本文版權(quán)歸作者所有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
分類: blog 標(biāo)簽: Redis
<
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com