天天看點

Redis 起步

Rdis和JQuery一樣是純粹為應用而産生的,這裡記錄的是在CentOS 5.7上學習入門文章:

1.Redis簡介

redis Redis是一個key-value存儲系統。和Memcached類似,但是解決了斷電後資料完全丢失的情況,而且她支援更多無化的value類型,除了和string外,還支援lists(連結清單)、sets(集合)和zsets(有序集合)幾種資料類型。這些資料類型都支援push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。

2.Redis的性能

下面是官方的bench-mark資料:

The test was done with 50 simultaneous clients performing 100000 requests.

The value SET and GET is a 256 bytes string.

The Linux box is running Linux 2.6, it’s Xeon X3320 2.5Ghz.

Text executed using the loopback interface (127.0.0.1).

Results: about 110000 SETs per second, about 81000 GETs per second.

3.安裝Redis

Redis的代碼遵循ANSI-C編寫,可以在所有POSIX系統(如Linux, *BSD, Mac OS X, Solaris等)上安裝運作。而且Redis并不依賴任何非标準庫,也沒有編譯參數必需添加。redis的安裝出奇的簡單,這可能也是他風靡的一個原因,讓人很容易上手,不像某些東西,編譯階段就能讓人完全絕望。

先去官網下載下傳源碼:

解壓:

tar –zxvf redis-2.4.6.tar.gz

編譯

需要說明的事,redis的安裝非常簡單,已經有現成的Makefile檔案,直接運作make指令即可。

make

make install

Redis 由四個可執行檔案:redis-benchmark、redis-cli、redis-server、redis-stat 這四個檔案,加上一個redis.conf就構成了整個redis的最終可用包。它們的作用如下:

redis-server:Redis伺服器的daemon啟動程式

redis-cli:Redis指令行操作工具。當然,你也可以用telnet根據其純文字協定來操作

redis-benchmark:Redis性能測試工具,測試Redis在你的系統及你的配置下的讀寫性能

redis-stat:Redis狀态檢測工具,可以檢測Redis目前狀态參數及延遲狀況

現在就可以啟動redis了,redis隻有一個啟動參數,就是他的配置檔案路徑。

redis-server /etc/redis.conf

注意,預設複制過去的redis.conf檔案的daemonize參數為no,是以redis不會在背景運作,這時要測試,我們需要重新開一個終端。修改為yes則為背景運作redis。另外配置檔案中規定了pid檔案,log檔案和資料檔案的位址,如果有需要先修改,預設log資訊定向到stdout.

下面是redis.conf的主要配置參數的意義:

daemonize:是否以背景daemon方式運作

pidfile:pid檔案位置

port:監聽的端口号

timeout:請求逾時時間

loglevel:log資訊級别

logfile:log檔案位置

databases:開啟資料庫的數量

save :儲存快照的頻率,第一個表示多長時間,第三個表示執行多少次寫操作。在一定時間内執行一定數量的寫操作時,自動儲存快照。可設定多個條件。

rdbcompression:是否使用壓縮

dbfilename:資料快照檔案名(隻是檔案名,不包括目錄)

dir:資料快照的儲存目錄(這個是目錄)

appendonly:是否開啟appendonlylog,開啟的話每次寫操作會記一條log,這會提高資料抗風險能力,但影響效率。

appendfsync:appendonlylog如何同步到磁盤(三個選項,分别是每次寫都強制調用fsync、每秒啟用一次fsync、不調用fsync等待系統自己同步)

這時你可以打開一個終端進行測試了,配置檔案中預設的監聽端口是6379

我們可以開啟一個Redis用戶端進行測試

4.redis資料結構

redis 的作者antirez曾稱其為一個資料結構伺服器(data structures server),這是一個非常準确的表述,redis的所有功能就是将資料以其固有的幾種結構儲存,并提供給使用者操作這幾種結構的接口。我們可以想象我們在各種語言中的那些固有資料類型及其操作。

redis目前提供四種資料類型:string,list,set及zset(sorted set)和Hash。

string是最簡單的類型,你可以了解成與Memcached一模一個的類型,一個key對應一個value,其上支援的操作與Memcached的操作類似。但它的功能更豐富。

list是一個連結清單結構,主要功能是push、pop、擷取一個範圍的所有值等等。操作中key了解為連結清單的名字。

set是集合,和我們數學中的集合概念相似,對集合的操作有添加删除元素,有對多個集合求交并差等操作。操作中key了解為集合的名字。

zset是set的一個更新版本,他在set的基礎上增加了一個順序屬性,這一屬性在添加修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。可以了解了有兩列的mysql表,一列存value,一列存順序。操作中key了解為zset的名字。

在官網上給出了所有支援的接口清單,并副副附有詳細的介紹,位址:

<a href="http://code.google.com/p/redis/wiki/CommandReference">http://code.google.com/p/redis/wiki/CommandReference</a>

另外,作者還提供了一個非常貼心的web指令行模拟頁面,供初學者試用redis,位址:

<a href="http://try.redis-db.com/">http://try.redis-db.com/</a>

5.redis資料存儲

redis的存儲分為記憶體存儲、磁盤存儲和log檔案三部分,配置檔案中有三個參數對其進行配置。

save seconds updates,save配置,指出在多長時間内,有多少次更新操作,就将資料同步到資料檔案。這個可以多個條件配合,比如預設配置檔案中的設定,就設定了三個條件。

appendonly yes/no ,appendonly配置,指出是否在每次更新操作後進行日志記錄,如果不開啟,可能會在斷電時導緻一段時間内的資料丢失。因為redis本身同步資料檔案是按上面的save條件來同步的,是以有的資料會在一段時間内隻存在于記憶體中。

appendfsync no/always/everysec ,appendfsync配置,no表示等作業系統進行資料緩存同步到磁盤,always表示每次更新操作後手動調用fsync()将資料寫到磁盤,everysec表示每秒同步一次。

6.redis主從配置

redis支援master-slave的主從配置,配置方法是在從機的配置檔案中指定slaveof參數為主機的ip和port即可

7.redis起步(連結整理)

項目首頁,下方是各種語言支援清單:

<a href="http://code.google.com/p/redis/">http://code.google.com/p/redis/</a>

本文來自雲栖社群合作夥伴“doNET跨平台”,了解相關資訊可以關注“opendotnet”微信公衆号

繼續閱讀