Redis 安裝
安裝環境:Linux debian (deepin)
軟件包管理安裝:redis
sudo apt-get install install redis-server算法
手動安裝:
因爲Redis是用C語言編寫的,手動安裝首先須要保證有gcc編譯器,若是沒有可輸入 sudo apt-get install gcc 命令來安裝數據庫
sudo wget http://download.redis.io/releases/redis-5.0.5.tar.gz
sudo tar zxvf redis-5.0.5.tar.gz
cp -r redis-5.0.5.tar.gz /usr/redis
cd /usr/redis/redis-5.0.5.tar.gz
sudo make
sudo make install緩存
安裝完成後redis就會在 /usr/redis/redis-5.0.5.tar.gz 路徑中。安裝完後是沒有配置文件的,咱們須要將配置文件複製到 /usr/redis 路徑中。服務器
啓動Redis
上面描述了Redis的兩種安裝方式,咱們在使用Redis時,若是是用軟件包安裝的話,能夠使用service redis-server start 的方式來啓動redis
若使用的是第二種使用方式的話,咱們須要進入到剛剛安裝的目錄下,運行redis-server文件啓動服務端,運行redis-cli啓動客戶端。ui
Redis 配置文件
Redis 的配置文件爲redis.conf文件,若是您的redis是手動安裝的話須要將redis的配置文件複製到您的安裝目錄。
因爲本人是用deb軟件包管理安裝的redis,因此須要到etc/redis目錄中找到redis.conf文件
若是使用的是第二種方式安裝的,啓動的時候須要帶上配置文件地址debug
配置說明
- daemonize no #Redis守護進程配置
- pidfile /var/run/redis.pid #將進程寫入到指定的文件
- port 6379 #指定Redis監聽端口,默認是6379
- bind 127.0.0.1 #綁定的主機地址默認綁定本機
- timeout 300 #當客戶端閒置多長時間後關閉鏈接,若是指定爲0表示關閉該功能
- loglevel verbose #指定日誌記錄級別,Redis總共支持四個級別:debug、verbose、notice、waring
- logfile stdout #日誌記錄方式,默認爲標準輸出,若是配置Redis爲守護進程方式運行,而這裏又配置爲日誌記錄方式爲標準輸出,則日誌將會發送給/dev/null
- databases 16 #設置數據庫的數量,默認爲0.能夠使用select (dbid) 命令在鏈接上指定數據庫id
- save (seconds) (changes) #指定在多上時間內,有多少次更新操做,就將數據庫同步到數據庫文件,能夠多條件配合,Redis中默認提供三個條件:1.save 9001 2.save 300 10 3.save 60 10000
- rdbcompression yes #指定存儲至本地數據時是否壓縮數據,默認爲yes,Redis採用LZF壓縮,若是爲了節省CPU時間能夠關閉該選項,可是會到時數據庫文件巨大
- dbfilename dump.rdb #指定本地數據庫文件名,默認值爲 dump.rdb
- dir ./ 指定本地文件存放目錄
- saveof (masterip) (masterport) #設置當本機爲slave服務時,設置master服務的IP地址及端口,在Redis啓動時,它會自動從master進行數據同步
- masterauth (master-password) #當master服務設置了密碼保護時,slave服務連接master的密碼
- requirepass foobared #設置Redis鏈接密碼,若是配置了鏈接密碼,客戶端在鏈接Redis時須要經過AUTH (password)命令提供密碼,默認關閉。若設置後連接須要使用redis-cli -a password。若須要遠程登陸需使用redis-cli -h host -p port -a password。
- maxclients 128 #設置同一時間最大客戶端鏈接數,默認無限制,設置maxclients 0表示不做限制。當客戶端連接數到達限制時,Redis會關閉新的鏈接並向客戶端返回max number of clients reached錯誤
maxmemory (byte) #指定Redis最大內存限制,Redis在啓動時會把數據加載到內存中,到達最大內存後,Redis會先嚐試清除已到期或即將到期的key,當此方法處理後,仍然到達最大內存設置,將沒法再進行寫入操做,但仍然能夠進行讀取操做,Redis新的vm機制,會把key存放內存,Value會存放在swap分區日誌
Redis宕機通常解決方案
Redis是一款優秀的中間緩存件,時常會存儲大量的數據,若是數據一直新增,內存很快就會佔滿。server
解決方案
- 微數據設置超時時間 (具體設置方案須要更具服務器的配置來)
採用LRU算法動態將不用的數據刪除。使用這些策略是當內存超過maxmemory限定時會主動觸發。具體算法詳情見 https://www.jianshu.com/p/afb440a48aba進程