1. 程式人生 > >Redis在CentOS下的安裝部署

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,如下:

https://img-blog.csdnimg.cn/20181225173336204

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同時使用的執行緒數量