Redis 的安裝使用
什么是Redis?
Redis是一個(gè)內存結構數據庫。這意味著(zhù)Redis通過(guò)一組命令提供對可變數據結構的訪(fǎng)問(wèn),這些命令是使用帶有TCP套接字和簡(jiǎn)單協(xié)議的服務(wù)器-客戶(hù)機模型發(fā)送的。因此不同的進(jìn)程可以以共享的方式查詢(xún)和修改相同的數據結構。
Redis中實(shí)現的數據結構有幾個(gè)特殊屬性:
- Redis會(huì )將數據存儲在磁盤(pán)上,數據總是被服務(wù)和修改到服務(wù)器內存中。這意味著(zhù)Redis速度很快,但也不是易失性的。
- 數據結構的實(shí)現強調內存效率,因此與使用高級編程語(yǔ)言建模的相同數據結構相比,Redis中的數據結構可能使用更少的內存。
- Redis提供了許多在數據庫中很自然的特性,比如復制、可調的持久性級別、集群、高可用性。
另一個(gè)很好的例子是將Redis看作是memcached的一個(gè)更復雜的版本,其中的操作不僅僅是set和get,而是處理復雜數據類(lèi)型(如列表、
集合、有序數據結構等)的操作。
如果您想了解更多信息,可以點(diǎn)擊下面鏈接:
- Redis數據類(lèi)型介紹:http://redis.io/topics/data-types-intro
- 直接在瀏覽器中嘗試Redis。http://try.redis.io
- Redis命令的完整列表。http://redis.io/commands
- Redis官方文檔中還有更多內容。http://redis.io/documentation
構建Redis
Redis可以在Linux、OSX、OpenBSD、NetBSD、FreeBSD上編譯和使用。我們支持big-endian和little-endian體系結構,以及32位和64位系統。
它可以在Solaris派生的系統(例如SmartOS)上編譯,但是我們對這個(gè)平臺的支持是最好的,Redis不能保證在Linux、OSX和*BSD中工作得那么好。
編譯命令
make
要使用TLS支持進(jìn)行構建,您需要OpenSSL開(kāi)發(fā)庫(例如Debian/Ubuntu上的libssl dev)并運行:
make BUILD_TLS=yes
您可以使用以下方法運行32位Redis二進(jìn)制文件:
make 32bit
在構建Redis之后,最好使用以下方法進(jìn)行測試:
make test
如果構建了TLS,請在啟用TLS的情況下運行測試(您需要安裝tcl TLS):
./utils/gen-test-certs.sh
./runtest --tls
修復依賴(lài)項或緩存生成選項的生成問(wèn)題
Redis有一些包含在deps目錄中的依賴(lài)項。即使依賴(lài)項源代碼中的某些內容發(fā)生更改,make也不會(huì )自動(dòng)重新生成依賴(lài)項。
使用git pull更新源代碼或以任何其他方式修改依賴(lài)關(guān)系樹(shù)中的代碼時(shí),請確保使用以下命令,以便真正清理所有內容并從頭開(kāi)始重建:
make distclean
這將清除:jemalloc,lua,hiredis,linenoise。
另外,如果強制某些生成選項,如32位目標、無(wú)C編譯器優(yōu)化(用于調試目的)和其他類(lèi)似的生成時(shí)選項,則這些選項將被無(wú)限期緩存,直到發(fā)出makedistclean命令。
修復生成32位二進(jìn)制文件的問(wèn)題
如果在用32位目標構建Redis之后需要用64位目標重新構建它,或者反過(guò)來(lái),您需要在Redis發(fā)行版的根目錄中執行 make distclean
。
如果在嘗試構建32位的Redis二進(jìn)制文件時(shí)出現構建錯誤,請嘗試以下步驟:
- 安裝包libc6-dev-i386(也可以嘗試g++-multilib)。
- 嘗試使用以下命令行
makecflags=“-m32-march=native”LDFLAGS=“-m32”
代替make32bit
內存分配
通過(guò)設置MALLOC環(huán)境變量,可以在構建Redis時(shí)選擇非默認內存分配器。Redis在默認情況下是針對libc malloc編譯和鏈接的,但jemalloc是Linux系統上的默認設置。之所以選擇此默認值,是因為jemalloc被證明比libc malloc具有更少的碎片問(wèn)題。
強制使用 libc
編譯,請使用:
make MALLOC=libc
強制使用 jemalloc
編譯,請使用:
make MALLOC=jemalloc
詳細構建信息
默認情況下,Redis將生成用戶(hù)友好的彩色輸出。如果要查看更詳細的輸出,請使用以下命令:
make V=1
運行Redis
要使用默認配置運行Redis,執行下面命令:
cd src
./redis-server
如果你想提供redis.con,您必須使用其他參數(配置文件的路徑)來(lái)運行它:
cd src
./redis-server /path/to/redis.conf
通過(guò)使用命令行直接將參數作為參數傳遞,可以更改Redis配置。示例:
./redis-server --port 9999 --replicaof 127.0.0.1 6379
./redis-server /etc/redis/6379.conf --loglevel debug
所有redis.conf的配置參數也支持使用命令行作為參數,使用完全相同的名稱(chēng)。
Redis 支持TLS
請查看TLS.md文件獲取有關(guān)如何將Redis與TLS一起使用的詳細信息。
使用Redis
您可以使用redis cli來(lái)連接redis。啟動(dòng)一個(gè)redis服務(wù)器實(shí)例,然后在另一個(gè)終端上嘗試以下操作:
% cd src
% ./redis-cli
redis> ping
PONG
redis> set foo bar
OK
redis> get foo
"bar"
redis> incr mycounter
(integer) 1
redis> incr mycounter
(integer) 2
redis>
您可以在中找到所有可用命令的列表:http://redis.io/commands.
安裝Redis
要將Redis二進(jìn)制文件安裝到/usr/local/bin中,只需使用:
make install
如果要使用其他目標,可以使用 make prefix=/some/other/directory install
。
make install
將只在系統中安裝二進(jìn)制文件,但不會(huì )在適當的位置配置init腳本和配置文件。如果你只想玩一點(diǎn)Redis,這是不需要的,但是如果你是在一個(gè)生產(chǎn)系統中正確地安裝它,我們有一個(gè)腳本為Ubuntu和Debian系統這樣做:
cd utils
./install_server.sh
注意:install_server.sh
不支持在 Mac OSX
上面運行,只支持 Linux
。
該腳本將解決您一些問(wèn)題,并將設置您所需的一切,以便將Redis作為后臺守護程序正常運行,該后臺守護程序將在系統重新啟動(dòng)時(shí)重新啟動(dòng)。
您可以使用名為 /etc/init.d/Redis_<portnumber>
的腳本來(lái)停止和啟動(dòng)Redis,例如 /etc/init.d/Redis_6379
。
