Redis在CentOS下的安裝部署
基本知識
1、Redis的資料型別:
字串、列表(lists)、集合(sets)、有序集合(sorts sets)、雜湊表(hashs)
2、Redis和memcache相比的獨特之處:
(1)redis可以用來做儲存(storge)、而memcache是來做快取(cache)。這個特點主要是因為其有“持久化”功能
(2)儲存的資料有“結構”,對於memcache來說,儲存的資料,只有一種型別——“字串”,而redis則可以儲存字串、連結串列、集合、有序集合、哈序結構
3、持久化的兩種方式:
Redis將資料儲存於記憶體中,或被配置為使用虛擬記憶體。
實現資料持久化的兩種方式:
(1)使用截圖的方式,將記憶體中的資料不斷寫入磁碟(效能高,但可能會引起一定程度的資料丟失)
(2)使用類似mysql的方式,記錄每次更新的日誌
4、Redis的主從同步:對提高讀取效能非常有益
5、Redis服務端的預設埠是6379
安裝Redis
1、先到Redis官網(https://redis.io/)下載redis安裝包,網盤同步:連結:https://pan.baidu.com/s/1ZbrtNor5p2nnWAD74CdhKw 提取碼:6o8v
2、準備目錄和安裝包,並解壓進入
在/usr/local/下建立redis目錄,並在redis下建立etc目錄,如下:
# cd /usr/local/
# mkdir redis
# cd redis/
# mkdir etc
# ls
將安裝包用Xftp工具移動至該redis目錄下,如下:
解壓進入
# tar -zxvf redis-5.0.3.tar.gz
# cd redis-5.0.3/
3、編譯源程式與安裝
# make
# cd src
# make install PREFIX=/usr/local/redis
4、將配置檔案移動到redis目錄
# mv redis.conf /usr/local/redis/etc/
5、修改配置檔案(也可用redis-cli修改,此處不再描述)
A. 預設情況,Redis不是在後臺執行,需要把redis放在後臺執行
# vim /usr/local/redis/etc/redis.conf
將daemonize的值改為yes,如下:
B. Redis保護模式是預設開啟即本機訪問,protected-mode yes修改為關閉no
C. Redis bind預設是127.0.0.1,註釋掉或者修改為0.0.0.0 (也可以修改為所在伺服器IP,用於監聽該網絡卡,例如:雲主機外網123.59.204.160,內網172.10.6.45,則改為172.10.6.45;若為區域網則改為本機IP即可)
D. Redis 設定口令是預設關閉,修改為:requirepass 123456789
6、設定redis開機自啟
# vim /etc/systemd/system/redis-server.service
貼上加入以下內容:
[Unit]
Description=The redis-server Process Manager
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
KillMode=process
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
儲存退出(:wq)
重新載入
# systemctl daemon-reload
啟動服務
# systemctl start redis-server.service
開機啟動
# systemctl enable redis-server.service
7、啟動redis服務
# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
(如下,表示以後臺啟動)
(如下,表示後臺啟動配置有誤,而控制檯啟動)
8、停止redis例項
# /usr/local/redis/bin/redis-cli shutdown
或者
# pkill redis-server
9、其他
# ps -ef |grep redis 檢查後臺程序是否正在執行,如下圖表示正在執行:
# netstat -lntp | grep 6379 檢測6379埠是否在監聽,如下:
# /usr/local/redis/bin/redis-cli 使用`redis-cli`客戶端檢測連線是否正常,如下正常:
10、防火牆開放埠
# firewall-cmd --zone=public --add-port=6379/tcp --permanent (--permanent永久生效,沒有此引數重啟後失效)
重新載入
# firewall-cmd --reload
檢視開啟的所有埠
# firewall-cmd --zone=public --list-ports
Redis的配置
- daemonize:如需要在後臺執行,把該項的值改為yes
- pdifile:把pid檔案放在/var/run/redis.pid,可以配置到其他地址
- bind:指定redis只接收來自該IP的請求,如果不設定,那麼將處理所有請求,在生產環節中最好設定該項
- port:監聽埠,預設為6379
- timeout:設定客戶端連線時的超時時間,單位為秒
- loglevel:等級分為4級,debug,revbose,notice和warning。生產環境下一般開啟notice
- logfile:配置log檔案地址,預設使用標準輸出,即列印在命令列終端的埠上
- database:設定資料庫的個數,預設使用的資料庫是0
- save:設定redis進行資料庫映象的頻率
- rdbcompression:在進行映象備份時,是否進行壓縮
- dbfilename:映象備份檔案的檔名
- dir:資料庫映象備份的檔案放置的路徑
- slaveof:設定該資料庫為其他資料庫的從資料庫
- masterauth:當主資料庫連線需要密碼驗證時,在這裡設定
- requirepass:設定客戶端連線後進行任何其他指定前需要使用的密碼
- maxclients:限制同時連線的客戶端數量
- maxmemory:設定redis能夠使用的最大記憶體
- appendonly:開啟appendonly模式後,redis會把每一次所接收到的寫操作都追加到appendonly.aof檔案中,當redis重新啟動時,會從該檔案恢復出之前的狀態
- appendfsync:設定appendonly.aof檔案進行同步的頻率
- vm_enabled:是否開啟虛擬記憶體支援
- vm_swap_file:設定虛擬記憶體的交換檔案的路徑
- vm_max_momery:設定開啟虛擬記憶體後,redis將使用的最大實體記憶體的大小,預設為0
- vm_page_size:設定虛擬記憶體頁的大小
- vm_pages:設定交換檔案的總的page數量
- vm_max_thrrads:設定vm IO同時使用的執行緒數量