1. 程式人生 > 其它 >centos7 安裝 redis

centos7 安裝 redis

Redis是nosql,非關係型資料庫

key-value資料庫,深入瞭解後你會發現,redis裡的資料都是通過key去找,不需要建立什麼資料庫什麼表之類的,非常簡單

快取資料庫,Redis將訪問頻繁的資料放到快取中,避免了像mysql一樣反覆連線資料而導致負載過高,而達到讀取速度快

由C語言編寫,並且是單執行緒伺服器,只有一個執行緒來響應所有請求

安裝

yum安裝redis時,建議使用Remi repository源。因為Remi源提供了目前最新版本的Redis

yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum --enablerepo=remi install -y redis  //--enablerepo指定yum源
redis-cli --version  //安裝完成後使用命令檢視一下版本

/etc/redis.conf 為redis的配置檔案

//第69行,Redis監聽的地址
bind 127.0.0.1
//第88行,安全模式,是否禁止外網訪問Redis,yes表示啟用,只能通過本地訪問
protected-mode yes
//第92行,監聽的埠號
port 6379
/*第101行,指定tcp-backlog長度。tcp-backlog是一個等待佇列。
* 當大量請求需要Redis處理時,需要等待的請求佇列會通過backlog來快取。
* backlog的數量決定來可以快取的佇列數
*/ tcp-backlog 511 //第109行,指定使用sock檔案通訊以及sock檔案位置。如果服務端和客戶端在同一臺主機上,建議開啟。sock方式通訊可以直接在記憶體中交換,不經過TCP/IP協議棧進行封裝、拆封 # unixsocket /tmp/redis.sock //第110行,定義sock檔案的許可權 # unixsocketperm 700 //第113行,表示客戶端連線成功後,空閒多長時間超時(非活躍,沒有資料互動)。0表示不開啟此功能 timeout 0 //第130行,維持長連結的時間,單位秒 tcp-keepalive 300 //第136行,是否在後臺執行守護程序。如果使用redis服務指令碼啟動,即使為no,也會執行一個守護程序。一般設定yes
daemonize no //第147行,是由upstart還是systemd接管redis程序。預設無監督互動,不需要修改。 supervised no //第158行,pid檔案地址 pidfile /var/run/redis_6379.pid //第166行,日誌級別 loglevel notice //第174行,日誌檔案位置 logfile /var/log/redis/redis.log //第186行,預設由多少個數據庫。但是在分散式中,只能有一個 databases 16 /*第218到220行,快照儲存策略,存到磁碟的持久化策略 *第一個數字是單位時間,單位為秒;第二個數字是鍵值發生變化的次數 * 例如第一個,900秒內至少發生1次鍵值變化,則做一次快照(持久化) * 第二個就是,300秒內至少發生10次鍵值變化,則做一次快照(持久化) * 所有條件是並列關係,根據不同的鍵值變化選擇使用規則 */ save 900 1 save 300 10 save 60 10000 //第235行,在進行快照備份時,一旦發生錯誤是否停止,預設yes即可 stop-writes-on-bgsave-error yes //第241行,指定RDB檔案是否壓縮。yes表示壓縮,會消耗CPU資源 rdbcompression yes /*第250行,是否對RDB檔案做校驗碼檢測。 *此項定義在redis啟動時載入RDB檔案是否對檔案檢查校驗碼,在redis生成RDB檔案是會生成校驗資訊,在redis再次啟動或裝載RDB檔案時,是否檢測校驗資訊。 *如果檢測的情況下會消耗時間,會導致redis啟動時慢,但是能夠判斷RDB檔案是否產生錯誤。 */ rdbchecksum yes //第253行,RDB檔名稱 dbfilename dump.rdb //第263行,RDB檔案存放的路徑 dir /var/lib/redis //第286行,定義Master伺服器的IP和埠,主從複製的配置資訊 # replicaof <masterip> <masterport> //第293行,定義Master伺服器的密碼,主從複製的配置資訊 # masterauth <master-password> //第308行,當從端在主從複製過程中與主端斷開連線,yes表示繼續提供服務,即使資料可能不是最新的;no表示對請求返回錯誤資訊 replica-serve-stale-data yes //第324行,從端只讀 replica-read-only yes //第355行,預設不使用diskless(無磁碟)同步方式 repl-diskless-sync no //第367行,diskless(無磁碟)方式進行資料傳遞之前會有一個時間的延遲,以便從端能夠進行到待傳送的目標佇列中,預設5秒 repl-diskless-sync-delay 5 //第373行,從端向主端傳送ping的時間間隔,預設10秒 # repl-ping-replica-period 10 //第385行,設定超時時間 # repl-timeout 60 /*第400行,是否啟用TCP_NODELAY。 * 如果啟用則會使用少量的TCP包和頻寬去進行資料傳輸到從端,速度較慢; * 如果不啟用則使用較多的頻寬進行資料傳輸,速度較快。 */ repl-disable-tcp-nodelay no /*第413行,設定backlog的大小。backlog是一個緩衝區,在從端失聯時存放要同步到從端的資料。 * 因此當從端重連時,一般是不需要完全同步的。backlog越大,從端可以失聯的時間就越長(相對來說) */ # repl-backlog-size 1mb //第426行,一段時間後,從端還沒有連上master,那麼backlog(緩衝區)的記憶體將被釋放。0表示永不釋放,預設3600秒 # repl-backlog-ttl 3600 //第441行,從端的優先順序設定,數字越小優先順序越高。主端故障會根據優先順序高的從端來進行恢復。如果設定的是0,那麼該從端永遠不會被選中 replica-priority 100 //第457到458行,當主端的可用從端小於3個或網路延遲島嶼10秒時,主端拒絕接收使用者的寫請求。 # min-replicas-to-write 3 # min-replicas-max-lag 10 //第507行,指定認證密碼,預設不啟動 # requirepass foobared //第539行,同時連線redis的最大數量 # maxclients 10000

特別注意:第69行的bind,第88行的protected-mode,第136行的daemonize,第539行的maxclients,還有主從複製的所有配置引數。

redis 的預設埠是6379

redis-cli是redis 的命令列工具,通過127.0.0.1埠6379連線到伺服器,如果未開啟 redis,會顯示無法連線資料庫

redis-cli    #本地連線
redis-cli -h IP地址  -p 埠  #連線外部redis
redis-cli -h 127.0.0.1 -p 6379 -a myPassword  #-a使用密碼認證連線

redis命令 (通過redis-cli進入redis後使用的命令)

ping    #用於檢測redis服務是否啟動
config get *    #獲取所有配置項
config get port    #獲得埠
config get bind    #獲得redis監聽的埠

config set port "1234"  #修改埠

redis命令官方文件:http://redisdoc.com/index.html