1. 程式人生 > >專案實踐——redis的伺服器和叢集的搭建

專案實踐——redis的伺服器和叢集的搭建

為什麼在電商的網站中要使用redis呢,因為redis是解決高併發問題的資料庫,不能存放大資料。適合於做快取。所以例如在電商的入口網站中,訪問量是什麼巨大的,而如果每次有人訪問後臺伺服器都向資料庫中查詢的話,那麼將會十分的耗費資源,這時候就應該把入口網站的一些資訊存放在redis中以作快取,這樣的話將大大的緩解伺服器的壓力。

以下是總結的redis的一些知識點

1,redis的持久化:一種是rdb即快照形式,設定時間間隔進行同步資料,一種是aof即即時的同步資料。因此要資料的完整性高的話用aof

2,redis是單執行緒的,順次處理命令。

3,如果快取過多的話,這時候可以開redis的叢集————這時候就有一個問題,如果開叢集的話那麼如何知道將key存放在哪臺伺服器上。

Redis 叢集中內建了 16384 個雜湊槽,當需要在 Redis 叢集中放置一個 key-value 時,redis 先對 key 使用 crc16 演算法算出一個結果,然後把結果對 16384 求餘數,這樣每個 key 都會對應一個編號在 0-16383 之間的雜湊槽,redis 會根據節點數量大致均等的將雜湊槽對映到不同的節點

而redis叢集是沒有統一的入口的,只要連線叢集中的任意一個節點都可以,因為他的每個節點都是互相連線的

4,如何檢測叢集中的節點的健康狀態呢?有一個投票:容錯機制,即叢集中超過半數的節點認為此節點連線不上,那麼叢集就認為這個節點連線不上了,因此會使此節點的從節點接替他的位置,一旦這個節點沒有從節點那麼這個叢集也就掛了

5,redis支援的資料格式。一共有五種  String   Hash   List  Set   SortedSet  常用的就是String  Hash  常用的命令  get  set   incr(+1用於id) decr(-1)

6,在一臺伺服器上搭建叢集時候,所用的是redis-cluster

搭建叢集的先行條件
1,先把redis資料夾複製一份過來。
2,刪除其中的dump。rdb檔案
3,修改redis.conf中的port埠號,以及ciuster—enabled 改為yes
4,將這個節點複製幾份即可,然後修改其中的埠號
5,然後可編寫批處理檔案進行批量開啟。此時就可以啟動了

開始搭建叢集
1,首先linux環境下得有ruby的執行環境,可以用yum install ruby進行安裝ruby的執行環境和yum install rubygems  gem的安裝環境
2,然後倒入 redis.gem的依賴包 gem install redis-3.0.0.gem進行安裝依賴包的安裝
3,而指令碼在redis原始碼包裡面的src 中的redis-trib.rb的指令碼。可以複製到叢集資料夾下面
4,開始執行指令碼
./redis-trib.rb create --replicas 1(每個節點下面有幾個從節點) 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006
5,用redis自帶的連線叢集時  redis-cli -p(指定連線哪個節點) -c(必須得加)

專案中要想使用redis的叢集的話  那麼得用jedis(首先得在java專案中匯入Jar包)
1.先建立一個jedisCluster的物件,構造引數Set型別,每個集合中每個元素是HostAndPort型別

2,直接使用jedisCluster來操作redis,自帶連線池。jedisCluster物件可以是單例的。
3,系統關閉前關閉jediscluster。

快取同步的處理方案,最簡單的方案就是在更新的時候刪除快取。