基本知識
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同時使用的線程數量