使用redis做快取的單機、叢集版的簡單使用
一.簡介與安裝
Redis是c語言開發的。(裝c語言環境、解壓、編譯、安裝)埠號6379
很多專案中,為了緩解我們伺服器與資料庫的壓力,我們使用快取。
安裝redis需要c語言的編譯環境。如果沒有gcc需要線上安裝。yum install gcc-c++
安裝步驟:
第一步:redis的原始碼包上傳到linux系統。
第二步:解壓縮redis。
第三步:編譯。進入redis原始碼目錄。make (c語言專案需要編譯)
第四步:安裝。make install PREFIX=/usr/local/redis
PREFIX引數指定redis的安裝目錄。一般軟體安裝到/usr目錄下
前端啟動:在redis的安裝目錄下的src目錄直接啟動redis-server(叫前端啟動是因為會佔用我們的命令號,命令號就無法使用了 不推薦) 使用ctrl+c退出
[[email protected] bin]# ./redis-server
後臺啟動(需要配置檔案):
把解壓出來的檔案複製到 我們的安裝目錄的bin檔案中並且修改配置檔案
/root/redis-3.0.0/redis.conf複製到/usr/local/redis/bin目錄下
[[email protected] redis-3.0.0]# cp redis.conf /usr/local/redis/bin/
修改配置檔案:
載入該配置檔案啟動 :[[email protected] bin]# ./redis-server redis.conf
檢視redis程序:
[[email protected] bin]# ps aux|grep redis
root 5190 0.1 0.3 33936 1712 ? Ssl 18:23 0:00 ./redis-server *:6379
root 5196 0.0 0.1 4356 728 pts/0 S+ 18:24 0:00 grep redis
關閉服務 kill + 埠號 或者kill + 埠號 + -9 強制關閉
或者使用reids-cli客戶端斷臂 ./redis-cli/ shutdown
二.redis操作與使用
使用./redis-cli 命令客戶端連線哪個redis服務 預設埠號為6379
也可以指定ip和埠號 ./redis-cli -h 192.168.25.162 -p 6379
具體資料操作見: https://blog.csdn.net/afdasfggasdf/article/details/84135841
三.redis的持久化方案
Redis的所有資料都是儲存到記憶體中的。
Rdb:快照形式,定期把記憶體中當前時刻的資料儲存到磁碟。Redis預設支援的持久化方案。
aof形式:append only file。把所有對redis資料庫操作的命令,增刪改操作的命令。儲存到檔案中。資料庫恢復時把所有的命令執行一遍即可。(預設不開啟 每秒存一次消耗記憶體)
在redis.conf配置檔案中配置。
Rdb:
Aof的配置 appendonly改為 yes就可以了:
兩種持久化方案同時開啟使用aof檔案來恢復資料庫。
四.redis叢集
redis-cluster架構
只能是單數 因為有投票機制
架構細節:
(1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進位制協議優化傳輸速度和頻寬.
(2)節點的fail是通過叢集中超過半數的節點檢測失效時才生效.
(3)客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連線叢集所有節點,連線叢集中任何一個可用節點即可
(4)redis-cluster把所有的物理節點對映到[0-16383]slot上,cluster 負責維護node<->slot<->value
Redis 叢集中內建了 16384 個雜湊槽,當需要在 Redis 叢集中放置一個 key-value 時,redis 先對 key 使用 crc16 演算法算出一個結果,然後把結果對 16384 求餘數,這樣每個 key 都會對應一個編號在 0-16383 之間的雜湊槽,redis 會根據節點數量大致均等的將雜湊槽對映到不同的節點(不關有多少redis都只有16384個節點)