Redis確實是壹項優秀的技術。它是壹個鍵值NoSQL內存數據庫,由ANSI C編寫,遵守BSD協議,支持網絡,可以基於內存,可以持久化,提供多種語言的API的基於日誌和鍵值的數據庫。Redis最大的特點就是會把所有的數據都放在內存中,所以讀寫速度表現非常好。Redis基於內存,性能較高,可以在壹定程度上解決網站的瞬時並發,比如搶購商品、秒殺等活動。
網站在承受高並發訪問壓力的同時,還需要從海量數據中查詢出符合條件的數據,這就要求響應速度快。前端發送請求,後端與mysql數據庫交互進行sql查詢操作,讀寫較慢。此時引入Redis,將mysql中的數據緩存到Redis中,下次讀取時性能會有所提升。當然,它還支持將內存中的數據以快照和日誌的形式持久化到硬盤上,這樣即使在停電、機器故障等異常情況下,數據也不會丟失,Redis可以將快照數據從硬盤恢復到內存中。
Redis發布了5.0版本的穩定版,放棄了Ruby的集群模式,使用C語言編寫的redis-cli,大大降低了集群構建的復雜度。Redis-Cluster采用無中心結構,每個節點存儲數據和整個集群狀態,每個節點與所有其他節點相連。
為了保證數據的高可用性,增加了主從模式。壹個主節點對應壹個或多個從節點,主節點提供數據訪問,從節點從主節點拉數據備份。當主節點掛起時,將選擇壹個從節點作為主節點,從而確保集群不會掛起。
Redis-cluster投票:容錯。投票過程涉及集群中的所有主機。如果超過壹半的主節點與主節點通信超過(cluster-node-timeout),則認為當前主節點被掛起。
集群中至少應該有奇數個節點,所以至少有三個節點,每個節點至少有壹個備份節點,所以使用以下六個節點(主節點和備份節點由redis-cluster確定)。六個節點分布在壹臺機器上,采用三主三從的模式。在實際應用中,最好使用多臺機器,比如將六個節點分布到三臺機器上。在構建集群時,redis自動將主節點和從節點分配給不同的機器。
第二,獨立的redis模式
下載源代碼redis5.0並解壓編譯。
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
塔爾xzf redis-5.0.0.tar.gz
cd redis-5.0.0
制造
Redis前端啟動需要改為後臺啟動。
修改redis.conf文件,並更改守護進程編號->;是啊
vim redis.conf
啟動redis
/www/server/redis/src/redis-server/www/server/redis/redis . conf
看看redis是否在運行。
ps aux|grep redis
現在單機redis模式完成了。
第三,redis集群模式:
1.創建6個Redis配置文件。
cd /usr/local/
Mkdir redis_cluster //創建集群目錄
cd redis_cluster
mkdir 7000 7001 7002 7003 7004 7005//分別代表6個節點。
它對應於端口7000 7001 7002 70037004 7005。
2.將配置文件復制到每個目錄。
CP/www/server/redis/redis . conf/usr/local/redis _ cluster/7000/
CP/www/server/redis/redis . conf/usr/local/redis _ cluster/7001/
CP/www/server/redis/redis . conf/usr/local/redis _ cluster/7002/
CP/www/server/redis/redis . conf/usr/local/redis _ cluster/7003/
CP/www/server/redis/redis . conf/usr/local/redis _ cluster/7004/
CP/www/server/redis/redis . conf/usr/local/redis _ cluster/7005/
3.分別修改配置文件
vim/usr/local/redis _ cluster/7000/redis . conf
vim/usr/local/redis _ cluster/7001/redis . conf
vim/usr/local/redis _ cluster/7002/redis . conf
vim/usr/local/redis _ cluster/7003/redis . conf
vim/usr/local/redis _ cluster/7004/redis . conf
vim/usr/local/redis _ cluster/7005/redis . conf
如下
端口7000 #端口
啟用集群是#啟用集群模式。
cluster-config-file nodes _ 7000 . conf #的配置文件第壹次開始自動生成。
群集節點超時5000 #超時5秒。
Appendonly yes #打開日誌記錄。它將為每個寫操作記錄壹個日誌。
後臺運行
保護模式編號#無保護模式
pidfile /var/run/redis_7000.pid
//下面就不用寫了。
#如果設置了密碼,主機和從機需要同時配置以下兩個參數:
Masterauth "jijiji" #連接到主機的密碼
要求輸入您自己的密碼
Cluster-config-file,port,pidfile對應的編號。
4.啟動節點
cd /www/server/redis/src/
。/redis-server/usr/local/redis _ cluster/7000/redis . conf
。/redis-server/usr/local/redis _ cluster/7001/redis . conf
。/redis-server/usr/local/redis _ cluster/7002/redis . conf
。/redis-server/usr/local/redis _ cluster/7003/redis . conf
。/redis-server/usr/local/redis _ cluster/7004/redis . conf
。/redis-server/usr/local/redis _ cluster/7005/redis . conf
查看redis操作
ps aux|grep redis
5.啟動集群
/www/server/redis/src/redis-CLI-cluster create 127 . 0 . 0 . 1:7000 127 . 0 . 0 . 1 127 . 0 . 0 . 1:7002 127 . 0 . 0 . 1:70000 . 0 . 1:7004 127 . 0 . 0 . 1:7005-群集副本1
這裏使用的命令是create,因為我們想要創建壹個新的集群。這個選項-cluster-replicate1意味著我們希望每個創建的主服務器都有壹個從服務器。
輸入是
至此,Reids5集群完成。
6.檢查Reids5集群的狀態。
您可以執行redis-CLI-cluster check host:port來檢查集群狀態插槽的詳細分配情況。
redis-cli -集群信息127.0.0.1:7000
7.停止Reids5集群。
(1).因為Redis可以妥善處理SIGTERM信號,所以也有可能直接kill -9。可以同時擊殺多次,然後依次啟動。
kill-9 PID PID PID PID
(2).redis5提供關閉集群的工具,修改文件:/www/server/redis/utils/create-cluster/create-cluster。
當端口PROT設置為6999,節點設置為6時,該工具將生成7000-7005個節點進行操作。
修改後,執行以下命令關閉集群:
/www/server/redis/utils/create-cluster/create-cluster stop
重新啟動群集:
/www/server/redis/utils/create-cluster/create-cluster start
8.幫助信息
執行redis-cli - cluster help以查看更多幫助信息。
redis-cli -集群幫助
紀海波