歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Redis入門教程

本文包括如下內容:

  1. Redis簡介
  2. Redis的性能
  3. 安裝Redis、Redis啟動參數介紹
  4. 應用實例:利用Redis構建簡單的微博系統(官方例子鏈接)

[注:入門教程,僅供菜鳥]

1.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.


更多詳細數據請見官方bench-mark page(http://code.google.com/p/redis/wiki/Benchmarks)

3.安裝Redis、Redis啟動參數介紹

3.1.安裝Redis

Redis的代碼遵循ANSI-C編寫,可以在所有POSIX系統(如Linux, *BSD, Mac OS X, Solaris等)上安裝運行。而且Redis並不依賴任何非標准庫,也沒有編譯參數必需添加。編譯安裝Redis,我們唯一需要的就是make,下面是安裝過程,使用的是目前的穩定版本1.2.6版,2.0版本目前尚處於開發狀態。

3.1.1.獲取源碼、解壓、進入源碼目錄:

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

3.1.2.編譯生成可執行文件:

由於makefile文件已經寫好,我們只需要直接在源碼目錄執行make命令進行編譯即可:

make

make命令執行完成後,會在當前目錄下生成本個可執行文件,分別是redis-server、redis-cli、redis-benchmark、redis-stat,它們的作用如下:

  • redis-server:Redis服務器的daemon啟動程序
  • redis-cli:Redis命令行操作工具。當然,你也可以用telnet根據其純文本協議來操作
  • redis-benchmark:Redis性能測試工具,測試Redis在你的系統及你的配置下的讀寫性能
  • redis-stat:Redis狀態檢測工具,可以檢測Redis當前狀態參數及延遲狀況

3.1.3.建立Redis目錄(非必須)

這個過程不是必須的,只是為了將Redis相關的資源統一管理而進行的操作。

執行以下命令建立相關目錄並拷貝相關文件至目錄中:

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

3.2.Redis配置參數詳解

在我們成功安裝Redis後,我們直接執行redis-server即可運行Redis,此時它是按照默認配置來運行的(默認配置甚至不是後台運行)。我們希望Redis按我們的要求運行,則我們需要修改配置文件,Redis的配置文件就是我們上面第二個cp操作的redis.conf文件,目前它被我們拷貝到了/usr/local/redis/etc/目錄下。修改它就可以配置我們的server了。如何修改?下面是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等待系統自己同步)

下面是一個略做修改後的配置文件內容:

daemonize yes pidfile /usr/local/redis/var/redis.pid port 6379 timeout 300 loglevel debug logfile /usr/local/redis/var/redis.log databases 16 save 900 1 save 300 10 save 60 10000 rdbcompression yes dbfilename dump.rdb dir /usr/local/redis/var/ appendonly no appendfsync always glueoutputbuf yes shareobjects no shareobjectspoolsize 1024

將上面內容寫為redis.conf並保存到/usr/local/redis/etc/目錄下

然後在命令行執行:

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

即可在後台啟動redis服務,這時你通過

telnet 127.0.0.1 6379

即可連接到你的redis服務。

4.利用Redis構建簡單的微博系統

具體例子見官方文檔:
《A case study: Design and implementation of a simple Twitter clone using only the Redis key-value store as database and PHP》

Copyright © Linux教程網 All Rights Reserved