1、安裝Redis php
在服務器上下載好最新的redis解壓包後,解壓linux
#tar -zxvf redis-3.2.0-tar-gzgit
#cd redis-3.2.0-tar-gzgithub
#make (redis-3.2.0-tar-gz是二進制包,因此不須要./configure命令。)redis
#cd src算法
#make install數據庫
以後咱們須要將redis的文件複製到/usr/local/redis目錄下vim
# mkdir -p /usr/local/redis/bin
# mkdir -p /usr/local/redis/etc
# cp -pf redis-benchmark /usr/local/redis/bin
# cp -pf redis-cli /usr/local/redis/bin
# cp -pf redis-check-dump /usr/local/redis/bin
# cp -pf redis-check-aof /usr/local/redis/bin
# cp -pf redis-server /usr/local/redis/bin
# cp -pf ../redis.conf /usr/local/redis/etc緩存
以後在redis的配置文件,將redis推送到後臺運行安全
vim /usr/local/redis/etc/redis.conf
找到daemonize設置爲yes(該項默認爲no),保存
以後啓動redis服務
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
輸入pstree |grep redis可查看redis主程序是否存在
2、安裝Redis擴展
下載地址:https://github.com/phpredis/phpredis
unzip phpredis-develop.zip
cd phpredis-develop
/usr/bin/phpize
phpredis-develop]# ./configure --with-php-config=/usr/bin/php-config
make
make install
以後在php配置文件中加入redis擴展
#vim /etc/php.ini
extension = "redis.so"
以後須要進行安全配置,使只有指定的ip地址可以訪問redis
vim /usr/local/redis/etc/redis.conf
找到默認的配置
# bind 127.0.0.1
默認狀況下,redis會暴露給全部ip地址,若是你只想讓本機鏈接,則設置成bind 127.0.0.1
(多個ip用空格隔開)
如下配置介紹轉載於http://my.oschina.net/wfire/blog/301147
#yes則將redis做爲守護進程(後臺運行,且隨linux啓動而啓動) daemonize no #當redis做爲守護進程運行的時候,它會把 pid 默認寫到/var/run/redis.pid 文件裏面,也可本身指定位置 pidfile /var/run/redis.pid # 監聽端口號,默認爲 6379,若是你設爲 0 ,redis 將不在 socket 上監放任何客戶端鏈接。 port 6379 # TCP 監聽的最大容納數量 # 在高併發的環境下,你須要把這個值調高以免客戶端鏈接緩慢的問題。 # Linux 內核會一言不發的把這個值縮小成 /proc/sys/net/core/somaxconn 對應的值, # 因此你要修改這兩個值才能達到你的預期。 tcp-backlog 511 # 指定 unix socket 的路徑。 unixsocket /tmp/redis.sock unixsocketperm 755 # 指定在一個 client 空閒多少秒以後關閉鏈接(0 就是無論它) timeout 0 #若是設置爲非零,則在與客戶端缺少通信的時候使用 SO_KEEPALIVE 發送 tcp acks 給客戶端。推薦一個合理的值就是60秒 tcp-keepalive 0 # 定義日誌級別。 # 能夠是下面的這些值: # debug (適用於開發或測試階段) # notice (適用於生產環境) # warning (僅僅一些重要的消息被記錄) loglevel notice # 指定日誌文件的位置 logfile "" # 要想把日誌記錄到系統日誌,就把它改爲 yes, # 也能夠可選擇性的更新其餘的syslog 參數以達到你的要求 syslog-enabled no # 設置 syslog 的 identity。 syslog-ident redis # 設置 syslog 的 facility,必須是 USER 或者是 LOCAL0-LOCAL7 之間的值。 syslog-facility local0 # 設置數據庫的數目。 # 默認數據庫是 DB 0,你能夠在每一個鏈接上使用 select <dbid> 命令選擇一個不一樣的數據庫, # 可是 dbid 必須是一個介於 0 到 databasees - 1 之間的值 databases 16 #redis持久化設置################################ # 存 DB 到磁盤: # # 格式:save <間隔時間(秒)> <寫入次數> # # 根據給定的時間間隔和寫入次數將數據保存到磁盤 # # 下面的例子的意思是: # 900 秒內若是至少有 1 個 key 的值變化,則保存 # 300 秒內若是至少有 10 個 key 的值變化,則保存 # 60 秒內若是至少有 10000 個 key 的值變化,則保存 # # 注意:你能夠註釋掉全部的 save 行來停用保存功能。 # 也能夠直接一個空字符串來實現停用: # save "" save 900 1 save 300 10 save 60 10000 # 默認狀況下,若是 redis 最後一次的後臺保存失敗,redis 將中止接受寫操做, # 這樣以一種強硬的方式讓用戶知道數據不能正確的持久化到磁盤, # 不然就會沒人注意到災難的發生。 # # 若是後臺保存進程從新啓動工做了,redis 也將自動的容許寫操做。 # # 然而你要是安裝了靠譜的監控,你可能不但願 redis 這樣作,那你就改爲 no 好了。 stop-writes-on-bgsave-error yes # 是否在 dump .rdb 數據庫的時候使用 LZF 壓縮字符串 # 默認都設爲 yes # 若是你但願保存子進程節省點 cpu ,你就設置它爲 no , # 不過這個數據集可能就會比較大 rdbcompression yes # 是否校驗rdb文件 rdbchecksum yes # 設置 dump 的文件位置 dbfilename dump.rdb # 工做目錄 # 例如上面的 dbfilename 只指定了文件名, # 可是它會寫入到這個目錄下。這個配置項必定是個目錄,而不能是文件名。 dir ./ #主從複製設置####################################### # 主從複製。使用 slaveof 來讓一個 redis 實例成爲另外一個reids 實例的副本。 # 注意這個只須要在 slave 上配置。 # # slaveof <masterip> <masterport> # 若是 master 須要密碼認證,就在這裏設置 # masterauth <master-password> # 當一個 slave 與 master 失去聯繫,或者複製正在進行的時候, # slave 可能會有兩種表現: # # 1) 若是爲 yes ,slave 仍然會應答客戶端請求,但返回的數據多是過期, # 或者數據多是空的在第一次同步的時候 # # 2) 若是爲 no ,在你執行除了 info he salveof 以外的其餘命令時, # slave 都將返回一個 "SYNC with master in progress" 的錯誤, # slave-serve-stale-data yes # 你能夠配置一個 slave 實體是否接受寫入操做。 # 經過寫入操做來存儲一些短暫的數據對於一個 slave 實例來講多是有用的, # 由於相對從 master 從新同步數而言,據數據寫入到 slave 會更容易被刪除。 # 可是若是客戶端由於一個錯誤的配置寫入,也可能會致使一些問題。 # # 從 redis 2.6 版起,默認 slaves 都是隻讀的。 # 注意:只讀的 slaves 沒有被設計成在 internet 上暴露給不受信任的客戶端。 # 它僅僅是一個針對誤用實例的一個保護層。 slave-read-only yes # Slaves 在一個預約義的時間間隔內發送 ping 命令到 server 。 # 你能夠改變這個時間間隔。默認爲 10 秒。 # # repl-ping-slave-period 10 #安全####################################### #設置密碼 requirepass 12345678 #限制####################################### # 設置鏈接最大限制,一旦達到最大限制,redis 將關閉全部的新鏈接 # 併發送一個‘max number of clients reached’的錯誤。 maxclients 10000 # 若是你設置了這個值,當緩存的數據容量達到這個值, redis 將根據你選擇的 # eviction 策略來移除一些 keys。 # 若是 redis 不能根據策略移除 keys ,或者是策略被設置爲 ‘noeviction’, # redis 將開始響應錯誤給命令,如 set,lpush 等等, # 並繼續響應只讀的命令,如 get # 最大使用內存 maxmemory <bytes> # 最大內存策略,你有 5 個選擇。 # volatile-lru -> 使用 LRU 算法移除包含過時設置的 key 。 # allkeys-lru -> 根據 LRU 算法移除全部的 key 。 # noeviction -> 不讓任何 key 過時,只是給寫入操做返回一個錯誤 # volatile-random -> remove a random key with an expire set # allkeys-random -> remove a random key, any key maxmemory-policy noeviction