當前位置:首頁 » 硬碟大全 » 基礎於redis的nodejs緩存框架
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

基礎於redis的nodejs緩存框架

發布時間: 2023-08-22 07:16:23

① 高性能高並發網站架構,教你搭建Redis5緩存集群

一、Redis集群介紹

Redis真的是一個優秀的技術,它是一種key-value形式的Nosql內存資料庫,由ANSI C編寫,遵守BSD協議、支持網路、可基於內存亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。 Redis最大的特性是它會將所有數據都放在內存中,所以讀寫速度性能非常好。Redis是基於內存進行操作的,性能較高,可以很好的在一定程度上解決網站一瞬間的並發量,例如商品搶購秒殺等活動。

網站承受高並發訪問壓力的同時,還需要從海量數據中查詢出滿足條件的數據,需要快速響應,前端發送請求、後端和mysql資料庫交互,進行sql查詢操作,讀寫比較慢,這時候引入Redis ,把從mysql 的數據緩存到Redis 中,下次讀取時候性能就會提高;當然,它也支持將內存中的數據以快照和日誌的形式持久化到硬碟,這樣即使在斷電、機器故障等異常情況發生時數據也不會丟失,Redis能從硬碟中恢復快照數據到內存中。

Redis 發布了穩定版本的 5.0 版本,放棄 Ruby的集群方式,改用 C語言編寫的 redis-cli的方式,是集群的構建方式復雜度大大降低。Redis-Cluster集群採用無中心結構,每個節點保存數據和整個集群狀態,每個節點都和其他所有節點連接。

為了保證數據的高可用性,加入了主從模式,一個主節點對應一個或多個從節點,主節點提供數據存取,從節點則是從主節點拉取數據備份,當這個主節點掛掉後,就會有這個從節點選取一個來充當主節點,從而保證集群不會掛掉。

redis-cluster投票:容錯,投票過程是集群中所有master參與,如果半數以上master節點與master節點通信超過(cluster-node-timeout),認為當前master節點掛掉。

集群中至少應該有奇數個節點,所以至少有三個節點,每個節點至少有一個備份節點,所以下面使用6節點(主節點、備份節點由redis-cluster集群確定)。6個節點分布在一台機器上,採用三主三從的模式。實際應用中,最好用多台機器,比如說6個節點分布到3台機器上,redis在建立集群時為自動的將主從節點進行不同機器的分配。

二、單機redis模式

下載源碼redis5.0並解壓編譯

wget http://download.redis.io/releases/redis-5.0.0.tar.gz

tar xzf redis-5.0.0.tar.gz

cd redis-5.0.0

make

redis前端啟動需要改成後台啟動.

修改redis.conf文件,將daemonize no -> daemonize yes

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

如下

port 7000 #埠

cluster-enabled yes #啟用集群模式

cluster-config-file nodes_7000.conf #集群的配置 配置文件首次啟動自動生成

cluster-node-timeout 5000 #超時時間 5秒

appendonly yes #aof日誌開啟 它會每次寫操作都記錄一條日誌

daemonize yes #後台運行

protected-mode no #非保護模式

pidfile /var/run/redis_7000.pid

//下面可以不寫

#若設置密碼,master和slave需同時配置下面兩個參數:

masterauth "jijiji" #連接master的密碼

requirepass "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:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1

這里使用的命令是create,因為我們要創建一個新的集群。 該選項--cluster-replicas 1意味著我們希望每個創建的主伺服器都有一個從服。

輸入yes

至此,Reids5 集群搭建完成。

6.檢查Reids5集群狀態

可以執行redis-cli --cluster check host:port檢查集群狀態slots詳細分配。

redis-cli --cluster info 127.0.0.1:7000

7.停止Reids5集群

(1).因為Redis可以妥善處理SIGTERM信號,所以直接kill -9也是可以的,可以同時kill多個,然後再依次啟動。

kill -9 PID PID PID

(2).redis5 提供了關閉集群的工具,修改文件: /www/server/redis/utils/create-cluster/create-cluster

埠PROT設置為6999,NODES為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 --cluster help

吉海波