歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 鋒利的Redis

鋒利的Redis

日期:2017/2/27 16:00:38   编辑:Linux教程

1.安裝Redis

redis的安裝出奇的簡單,這可能也是他風靡的一個原因,讓人很容易上手,不像某些東西,編譯階段就能讓人完全絕望。

先去官網下載源碼:

wget http://redis.googlecode.com/files/redis-1.2.6.tar.gz

(本文結稿時的最新版本)

解壓:

tar zxf redis-1.2.6.tar.gz

編譯:

需要說明的事,redis的安裝非常簡單,已經有現成的Makefile文件,直接運行make命令即可。

cd redis-1.2.6
make

此時會在目錄下生成四個可執行文件:redis-benchmarkredis-cliredis-serverredis-stat

這四個文件,加上一個redis.conf就構成了整個redis的最終可用包。

下面你可以把這幾個可執行文件和redis.conf文件復制到你所希望的地方,比如我是復制到/usr/local/redis/bin/usr/local/redis/etc 下面的,命令如下:

mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc
cp redis-benchmark redis-cli redis-server redis-stat /usr/local/redis/bin
cp redis.conf /usr/local/redis/etc

現在就可以啟動redis了,redis只有一個啟動參數,就是他的配置文件路徑。

cd /usr/local/redis
bin/redis-server etc/redis.conf

注意,默認復制過去的redis.conf文件的daemonize參數為no,所以redis不會在後台運行,這時要測試,我們需要重新開一個終端。修改為yes則為後台運行redis。另外配置文件中規定了pid文件,log文件和數據文件的地址,如果有需要先修改,默認log信息定向到stdout.

這時你可以打開一個終端進行測試了,配置文件中默認的監聽端口是6379,所以我們用telnet進行連接如下:

telnet localhost 6379

回車後即可鍵入命令。

2.redis數據結構

redis 的作者antirez曾笑稱其為一個數據結構服務器(data structures server),我認為這是一個非常准確的表述,redis的所有功能就是將數據以其固有的幾種結構保存,並提供給用戶操作這幾種結構的接口。我們可以想象我們在各種語言中的那些固有數據類型及其操作。

redis目前提供四種數據類型:string,list,setzset(sorted set)。

  • string是最簡單的類型,你可以理解成與Memcached一模一個的類型,一個key對應一個value,其上支持的操作與Memcached的操作類似。但它的功能更豐富。
  • list是一個鏈表結構,主要功能是push、pop、獲取一個范圍的所有值等等。操作中key理解為鏈表的名字。
  • set是集合,和我們數學中的集合概念相似,對集合的操作有添加刪除元素,有對多個集合求交並差等操作。操作中key理解為集合的名字。
  • zset是set的一個升級版本,他在set的基礎上增加了一個順序屬性,這一屬性在添加修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。可以理解了有兩列的mysql表,一列存value,一列存順序。操作中key理解為zset的名字。

在官網上給出了所有支持的接口列表,並副副附有詳細的介紹,地址:

http://code.google.com/p/redis/wiki/CommandReference

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

http://try.redis-db.com/

3.redis數據存儲

redis的快速是業內聞名的,但是我想說,這個速度還是有一定水分的,且看下文。

redis的存儲分為內存存儲、磁盤存儲和log文件三部分,配置文件中有三個參數對其進行配置。

save seconds updatessave配置,指出在多長時間內,有多少次更新操作,就將數據同步到數據文件。這個可以多個條件配合,比如默認配置文件中的設置,就設置了三個條件。

appendonly yes/no appendonly配置,指出是否在每次更新操作後進行日志記錄,如果不開啟,可能會在斷電時導致一段時間內的數據丟失。因為redis本身同步數據文件是按上面的save條件來同步的,所以有的數據會在一段時間內只存在於內存中。

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

4.redis主從配置

redis支持master-slave的主從配置,配置方法是在從機的配置文件中指定slaveof參數為主機的ip和port即可,原理上來說,是從機請求主機的方式,按照tokyotyrant的做法,是可以實現主-主,主-從等靈活形式的,而redis只能支持主從,不能支持主-主,可能是其同步原理的差異所致。
Copyright © Linux教程網 All Rights Reserved