爲了得到優異的性能,Redis採用了內存中(in-memory)數據集(dataset)的方式。根據使用場景的不一樣,你能夠每隔一段時間將數據集轉存到磁盤上來持久化數據,或者在日誌尾部追加每一條操做命令。linux
Redis一樣支持主從複製(master-slave replication),而且具備很是快速的非阻塞首次同步(non-blocking first synchronization)、網絡斷開自動重連等功能。同時Redis還具備其它一些特性,其中包括簡單的check-and-set機制、pub/sub和配置設置等,以便使得Redis可以表現得更像緩存(cache)。redis
Redis還提供了豐富的客戶端,以便支持現階段流行的大多數編程語言。詳細的支持列表能夠參看Redis官方文檔:http://redis.io/clients。Redis自身使用ANSI C來編寫,而且可以在不產生外部依賴(external dependencies)的狀況下運行在大多數POSIX系統上,例如:Linux、*BSD、OS X和Solaris等。編程
說明:Redis的安裝版本選取爲2.2.6,安裝包爲redis-2.2.6.tar.gz,系統平臺爲CentOS 5.5。緩存
1. 解壓安裝包服務器
使用tar -xzvf redis-2.2.6.tar.gz來解壓安裝包。假設Redis 解壓後目錄爲redis-2.2.6,絕對路徑使用$REDIS_HOME來表示。其目錄結構以下所示:網絡
其中,README和INSTALL中包含了編譯、安裝Redis的簡單說明,在正式開始以前請先閱讀這兩個文件。數據結構
2. 編譯
app
進入$REDIS_HOME/src目錄,使用make命令來編譯Redis,該編譯過程將會產生redis-server二進制文件。
編程語言
3. 測試性能
在編譯Redis完成以後,最好使用make test命令進行一下測試,可是該步不是必須的。
4. 安裝
使用make install來完成Redis的安裝。Redis的全部二進制文件將會被安裝在/usr/local/bin目錄下。
假設Redis安裝在/usr/local/bin目錄下,而且該目錄包含在$PATH環境變量的搜索目錄中。那麼即可以使用redis-server來運行Redis。若是Redis安裝在其餘目錄中,可使用/path/to/redis-server來啓動Redis,或者將Redis的安裝目錄添加到$PATH的搜索目錄中。
Redis自帶了一個稱爲redis-cli的命令行客戶端,該客戶端會在運行make命令的時候自動編譯。用戶可使用該客戶端完成Redis的一些簡單測試或操做。
使用redis-cli來啓動該客戶端,啓動後命令行前綴爲:redis>。用戶能夠在此進行後續操做,這相似於MySQL的命令行模式。
例如,使用以下命令來存儲key-value對:
使用get命令來獲取所存儲的值:
至此,Redis的安裝和簡單測試便完成了。須要注意的是,在運行make test命令的時候,有時候會出現以下錯誤:
(cd ..; tclsh8.5 tests/test_helper.tcl --tags "" --file "")
/bin/sh: tclsh8.5: command not found
make: *** [test] Error 127
之因此會出現該錯誤是由於在運行make test命令時,須要Tcl 8.5的庫,而CentOS 5.5自帶的版本爲8.4。用戶可使用以下命令來查看:
此時,你能夠到Tcl的官方網站http://www.tcl.tk/下載8.5版本,並按照Tcl的安裝說明自行安裝即可。安裝完成後,使用ldconfig再次查看:
此時,再次運行make test命令即可。
一、從官網下載和解壓源代碼
wget http://redis.googlecode.com/files/redis-2.2.5.tar.gz
tar xzf redis-2.2.5.tar.gz
cd redis-2.2.5
二、編譯,並使用tcmalloc加速(見http://www.linuxidc.com/Linux/2011-07/38664.htm)
三、啓動redis
./redis-server ./redis.conf
四、驗證是否在使用tcmalloc lsof -n |grep tcmalloc redis-ser 26689 root mem REG 253,3 1800221 4182039 /usr/local/lib/libtcmalloc.so.0.1.0 redis-ser 26694 root mem REG 253,3 1800221 4182039 /usr/local/lib/libtcmalloc.so.0.1.0 redis-ser 26697 root mem REG 253,3 1800221 4182039 /usr/local/lib/libtcmalloc.so.0.1.0 redis-ser 26701 root mem REG 253,3 1800221 4182039 /usr/local/lib/libtcmalloc.so.0.1.0