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 1ruby搭建集群命令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
執行命令後
redis連線集群(單機版的不用加引數 -c)
[root@localhost redis-cluster]# redis01/redis-cli -p 7002 -credis連線redis單機版和集群版,點此 redis連線redis單機版和集群版-c:代表連線的是redis集群
redis不適用於大資料,適用於高併發的程式
1、查詢資料庫之前先查詢快取。
2、查詢到結果,直接響應結果。
3、查詢不到,快取中沒有需要查詢資料庫。
4、把查詢結果新增到快取中。
5、返回結果。
一般都使用hash資料型別,使用hash時,可以將儲存的內容進行歸類
index_content分類
cidhash的字段
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...