歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux(CentOS 5.5) Redis 安裝及RedisPHP拓展安裝應用

Linux(CentOS 5.5) Redis 安裝及RedisPHP拓展安裝應用

日期:2017/2/28 16:08:31   编辑:Linux教程

一,什麼是redis

redis是一個key-value存儲系統。 和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集 合)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis 支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改 操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。

二,安裝配置redis

1,下載redis

下載地址:(選最新穩定版下載)

http://code.google.com/p/redis/downloads/list
  1. wget http://redis.googlecode.com/files/redis-2.4.0-rc5.tar.gz
2,安裝redis
  1. tar -zxvf redis-2.4.0-rc5.tar.gz
  2. make
  1. 安裝完成後,會自動copy可執行文件到環境變量中
  2. [root@localhost redis-2.4.0-rc5]# redis-
  3. redis-benchmark redis-cli redis-server
  4. [root@localhost redis-2.4.0-rc5]# cp redis.conf /etc/
  5. [root@localhost redis-2.4.0-rc5]# cp redis-benchmark redis-cli redis-server /usr/bin
3,配置redis

修改/etc/redis.conf

  1. daemonize yes
  2. pidfile /usr/local/redis/var/redis.pid
  3. port 6379
  4. timeout 300
  5. loglevel verbose
  6. logfile /usr/local/redis/var/redis.log
  7. databases 16
  8. save 900 1
  9. save 300 10
  10. save 60 10000
  11. rdbcompression yes
  12. dbfilename dump.rdb
  13. dir /usr/local/redis/var
  14. slave-serve-stale-data yes
  15. appendonly no
  16. appendfsync everysec
  17. no-appendfsync-on-rewrite no
  18. vm-enabled no
  19. vm-swap-file /tmp/redis.swap
  20. vm-max-memory 0
  21. vm-page-size 32
  22. vm-pages 134217728
  23. vm-max-threads 4
  24. hash-max-zipmap-entries 512
  25. hash-max-zipmap-value 64
  26. list-max-ziplist-entries 512
  27. list-max-ziplist-value 64
  28. set-max-intset-entries 512
  29. activerehashing yes

以下結合自己翻譯,以及在網上找的,比較全的參數說明:

1,是否以後台進程運行,默認為no
daemonize no

2,如以後台進程運行,則需指定一個pid,默認為/var/run/redis.pid
pidfile /var/run/redis.pid

3,監聽端口,默認為6379
port 6379

4,綁定主機IP,默認值為127.0.0.1(注釋)
bind 127.0.0.1

5,超時時間,默認為300(秒)
timeout 300

6,日志記錄等級,有4個可選值,debug,verbose(默認值),notice,warning
loglevel verbose

7,日志記錄方式,默認值為stdout
logfile stdout

8,可用數據庫數,默認值為16,默認數據庫為0
databases 16

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

900秒(15分鐘)內至少有1個key被改變
save 900 1
300秒(5分鐘)內至少有10個key被改變
save 300 10

10,存儲至本地數據庫時是否壓縮數據,默認為yes
rdbcompression yes

11,本地數據庫文件名,默認值為dump.rdb
dbfilename /root/redis_db/dump.rdb

12,本地數據庫存放路徑,默認值為 ./
dir /root/redis_db/

13,當本機為從服務時,設置主服務的IP及端口(注釋)
slaveof <masterip> <masterport>

14,當本機為從服務時,設置主服務的連接密碼(注釋)
masterauth <master-password>

15,連接密碼(注釋)
requirepass foobared

16,最大客戶端連接數,默認不限制(注釋)
maxclients 128

17,設置最大內存,達到最大內存設置後,Redis會先嘗試清除已到期或即將到期的Key,當此方法處理後,任到達最大內存設置,將無法再進行寫入操作。(注釋)
maxmemory <bytes>

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

19,更新日志文件名,默認值為appendonly.aof(注釋)
appendfilename /root/redis_db/appendonly.aof

20,更新日志條件,共有3個可選值。no表示等操作系統進行數據緩存同步到磁盤,always表示每次更新操作後手動調用fsync()將數據寫到磁盤,everysec表示每秒同步一次(默認值)。
appendfsync everysec

21,是否使用虛擬內存,默認值為no
vm-enabled yes

22,虛擬內存文件路徑,默認值為/tmp/redis.swap,不可多個Redis實例共享
vm-swap-file /tmp/redis.swap

23,將所有大於vm-max-memory的數據存入虛擬內存,無論vm-max-memory設置多小,所有索引數據都是內存存儲的 (Redis的索引數據就是keys),也就是說,當vm-max-memory設置為0的時候,其實是所有value都存在於磁盤。默認值為0。
vm-max-memory 0

24,虛擬內存文件以塊存儲,每塊32bytes
vm-page-size 32

25,虛擬內在文件的最大數
vm-pages 134217728

26,可以設置訪問swap文件的線程數,設置最好不要超過機器的核數,如果設置為0,那麼所有對swap文件的操作都是串行的.可能會造成比較長時間的延遲,但是對數據完整性有很好的保證.
vm-max-threads 4

27,把小的輸出緩存放在一起,以便能夠在一個TCP packet中為客戶端發送多個響應,具體原理和真實效果我不是很清楚。所以根據注釋,你不是很確定的時候就設置成yes
glueoutputbuf yes

28,在redis 2.0中引入了hash數據結構。當hash中包含超過指定元素個數並且最大的元素沒有超過臨界時,hash將以一種特殊的編碼方式(大大減少內存使用)來存儲,這裡可以設置這兩個臨界值
hash-max-zipmap-entries 64

29,hash中一個元素的最大值
hash-max-zipmap-value 512

30,開啟之後,redis將在每100毫秒時使用1毫秒的CPU時間來對redis的hash表進行重新hash,可以降低內存的使用。當你的使 用場景中,有非常嚴格的實時性需要,不能夠接受Redis時不時的對請求有2毫秒的延遲的話,把這項配置為no。如果沒有這麼嚴格的實時性要求,可以設置 為yes,以便能夠盡可能快的釋放內存
activerehashing yes


三,啟動,使用redis
  1. redis-server /etc/redis.conf
  2. 查看是否啟動
  3. ps -ef | grep redis
  4. 如有以下信息說明啟動成功:
  5. root 7949 1 0 11:47 ? 00:00:00 redis-server /etc/redis.conf
測試命令:
  1. [root@localhost redis-2.4.0-rc5]# redis-cli set test "123456"
  2. OK
  3. [root@localhost redis-2.4.0-rc5]# redis-cli get test
  4. "123456"
四,關閉redis
  1. 關閉
  2. # redis-cli shutdown //關閉所有
  3. 關閉某個端口上的redis
  4. # redis-cli -p 6397 shutdown //關閉6397端口的redis
五,安裝redis php擴展

1,下載redis php擴展

從下面的下載地址找個最新的

  1. https://github.com/owlient/phpredis/downloads
  1. 如果使用CentOS自帶php則確保php-devel安裝
  1. 否則執行: yum install php-devel -y
如果是源碼編譯安裝則在安裝目錄的bin/phpize
如:/usr/local/php/bin/phpize
Copyright © Linux教程網 All Rights Reserved