redis整合Spring集群搭建及業務中的使用

2022-07-09 07:57:12 字數 3456 閱讀 6679

redis是c語言開發的。

安裝步驟:

第一步:redis的原始碼包上傳到linux系統。

第二步:解壓縮redis。

第三步:編譯。進入redis原始碼目錄。make

第四步:安裝。make install prefix=/usr/local/redis

prefix引數指定redis的安裝目錄。一般軟體安裝到/usr目錄下

詳細安裝步驟,以及後台執行的配置 點此 linux上安裝redis

找到安裝redis的資料夾中的bin目錄.執行以下命令

[root@localhost bin]# ./redis-cli

預設連線localhost執行在6379埠的redis服務。

[root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379

-p:服務的埠號

關閉redis:[root@localhost bin]# ./redis-cli shutdown

redis五種資料型別及命令操作 點此reids基本命令

redis持久化方法點此 redis持久化方案

redis的每個節點上都儲存有其他節點的資訊,並且相互通訊,客戶端連線集群時,隨機連線

1. redis每個節點之間每隔一段時間就會相互的ping一下,對方收到ping後會回覆pong,如上圖,如果黃色的節點ping紅色的節點時,紅色節點沒給回覆,黃色節點就會以為紅色節點已經掛了,接著其他節點去ping紅色節點,如果多數節點沒有收到回信,則判斷紅色節點已掛,投票容錯就這樣.

2. 因為redis的投票容錯機制,所以redis的集群至少應該有三個及以上的節點

3.redis 集群中內建了 16384 個雜湊槽,當需要在 redis 集群中放置乙個 key-value 時,redis 先對 key 使用 crc16 演算法算出乙個結果,然後把結果對 16384 求餘數,這樣每個 key 都會對應乙個編號在 0-16383 之間的雜湊槽,redis 會根據節點數量大致均等的將雜湊槽對映到不同的節點如下圖,所以理論上redis的節點可以有16384個

redis集群中至少應該有三個節點。要保證集群的高可用,需要每個節點有乙個備份機。 redis主從複製 如果使用ruby搭建redis集群,從節點不用手動配置,ruby會自動分配

redis集群至少需要6臺伺服器(3臺是主節點,3臺是對應的備份節點)。

搭建偽分布式。可以使用一台虛擬機器執行6個redis例項。需要修改redis的埠號7001-7006

1、使用ruby指令碼搭建集群。需要ruby的執行環境。

安裝ruby

yum install ruby

yum install rubygems

2、安裝ruby指令碼執行使用的包。

[root@localhost ~]# gem install redis-3.0.0.gem

successfully installed redis-3.0.0

1 gem installed

installing ri documentation for redis-3.0.0...

installing rdoc documentation for redis-3.0.0...

[root@localhost ~]#

在redis解壓資料夾的src目錄下有乙個redis-trib.rb檔案之後需要用

[root@localhost ~]# cd redis-3.0.0/src

[root@localhost src]# ll *.rb

-rwxrwxr-x. 1 root root 48141 apr  1  2015 redis-trib.rb

需要6臺redis伺服器。搭建偽分布式。

需要6個redis例項。

需要執行在不同的埠7001-7006

第一步:建立6個redis例項,將我們之前安裝的redis中的bin目錄拷貝六份,並改好名稱.修改每個例項執行的埠。需要修改redis.conf配置檔案。配置檔案中還需要把cluster-enabled yes前的注釋去掉(表示是支援集群)。

第二步:啟動每個redis例項。這裡可以建立乙個sh指令碼,執行指令碼來啟動六個redis

指令碼內容如下

.第三步:使用ruby指令碼搭建集群。將redis解壓資料夾的src目錄下有乙個redis-trib.rb檔案複製到我們放redis集群的資料夾中,使用以下命令

--replicas 1 表示每個節點有乙個備份機

./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

ruby搭建集群命令

執行命令後

redis連線集群(單機版的不用加引數 -c)

[root@localhost redis-cluster]# redis01/redis-cli -p 7002 -c

-c:代表連線的是redis集群

redis連線redis單機版和集群版,點此 redis連線redis單機版和集群版

redis不適用於大資料,適用於高併發的程式

1、查詢資料庫之前先查詢快取。

2、查詢到結果,直接響應結果。

3、查詢不到,快取中沒有需要查詢資料庫。

4、把查詢結果新增到快取中。

5、返回結果。

一般都使用hash資料型別,使用hash時,可以將儲存的內容進行歸類

index_content

分類

cid

hash的字段

jsonutils.objecttojson(tbcontents)

cid對應的值

我們在對資料庫進行增刪改的時候快取中的資料沒有變化,顯然這種情況下,下一次查詢出來的資料肯定錯誤,所以需要對快取進行同步

對內容資訊做增刪改操作後只需要把對應快取刪除即可。

可以根據我們hash的字段來刪除對應的快取。

spring整合redis集群配置

pom.xml org.springframework.data spring data redis 1.7.4.release org.slf4j slf4j api 這裡為什麼要排除slf日誌?因為我的框架使用的是log4j,如果有slf,那麼log4j的日誌將不生效。所以要排除。因為sprin...

Spring該如何整合Redis集群

前言 在上一文中,我講到了 為什麼要搭建集群及redis集群搭建的詳細步驟。今天給大家講解一下spring如何整合redis集群 而集群確包含了分片和哨兵的兩者的優點,既實現了記憶體資料的擴容,也實現了redis的高可用,而且集群確保了乙個或一定數量的redis宕機,也能夠讓程式正常的執行,這也是為...

redis集群搭建以及和spring整合

1.集群搭建 mkdir p usr local redis cluster mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005 mkdir 7006 tar zxvf usr local software redis 3.0.0 rc2.t...