安裝redis和php的redis擴展

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
相關文章
相關標籤/搜索