Linux所有版本:http://download.redis.io/releases/
Windows所有版本:https://github.com/MicrosoftArchive/redis/releases
注:由於redis是由C實現的,所以需要gcc來進行編譯,執行下面的命令:
yum install -y gcc g++ gcc-c++ make
/*這是在linux聯網的情況下,沒有聯網的情況下需要下載一些rpm包,安裝gcc,這塊自行百度。*/
1.將下載的tar包上傳到服務器,或者通過wget命令進行下載。
tar -zxvf **.tar.gz 命令進行解壓
[[email protected] redis]# tar -zxvf redis-5.0.5.tar.gz
2.進入解壓後目錄:
cd redis-5.0.5
然後輸入make:
[[email protected] redis-5.0.5]# make
安裝完c++編譯器後 再次 make 若報此錯
執行 make clean 後再次 執行 make ,再檢查redis-x.x.x/src 目錄下有沒有 redis-server、redis-cli 和 /usr/local/bin下有沒有
若無,則把redis-x.x.x 文件夾刪掉,再解壓一次redis的壓縮包,cd進入 redis-x.x.x 中, make 一下 即可
如果make 出現如下情況,輸入make MALLOC=libc
3.啓動redis服務
make完後 redis-2.8.17目錄下會出現編譯後的redis服務程序redis-server,還有用於測試的客戶端程序redis-cli,兩個程序位於安裝目錄 src 目錄下:
下面啓動redis服務.
cd src
./redis-server
注意這種方式啓動redis 使用的是默認配置。也可以通過啓動參數告訴redis使用指定配置文件使用下面命令啓動
cd src
./redis-server ../redis.conf
SpringBoot連接Redis服務問題
問題描述:SpringBoot連接Redis服務出現DENIED Redis is running in protected mode because protected mode is enabled
解決方法:是說Redis服務處於保護模式,我們需要修改配置文件redis.conf。將NETWORK下的protected-mode yes修改
爲protected-mode no,將bind 127.0.0.1 給註釋掉
然後重啓服務(./redis-server ../redis.conf)
設置redis後臺啓動,在redis.conf中將daemonize設置爲daemonize yes
在第一臺機器的/usr/local下創建文件夾redis‐cluster,然後在其下面分別創建文件夾如下
(1)mkdir ‐p /usr/local/redis‐cluster
(2)mkdir 8001 8002 8003 8004 8005 8006
把之前的redis.conf配置文件copy到8001下,修改如下內容:
(1)daemonize yes
(2)port 8001(分別對每個機器的端口號進行設置)
(3)dir /usr/local/redis‐cluster/8001/(指定數據文件存放位置,必須要指定不同的目錄位置,不然會丟失數據)
(4)cluster‐enabled yes(啓動集羣模式)
(5)cluster‐config‐file nodes‐8001.conf(集羣節點信息文件,這裏800x最好和port對應上)
(6)cluster‐node‐timeout 5000
(7)# bind 127.0.0.1(bind綁定的是自己機器網卡的ip,如果有多塊網卡可以配多個ip,代表允許客戶端通過機器的哪些網卡ip去訪問,內網一般可以不配置bind,註釋掉即可)
(8) protected‐mode no (關閉保護模式)
(9)appendonly yes
如果要設置密碼需要增加如下配置:
(10)requirepass chenxuan(設置redis訪問密碼)
(11)masterauth chenxuan(設置集羣節點間訪問密碼,跟上面一致)
把修改後的配置文件,copy到8002,修改第2、3、5項裏的端口號
按照操作替換所有配置,然後啓動redis
啓動redis服務,不同的端口號就不同的redis服務
/opt/redis/redis-5.0.5/src/redis-server /usr/local/redis-cluster/8001/redis.conf
創建集羣 (‐a訪問服務端密碼,-cluster表示開啓集羣模式, create表示創建 --cluster-replicas:集羣的redis服務們)
例:/opt/redis/redis-5.0.5/src/redis-cli -a chenxuan --cluster create --cluster-replicas 1 192.168.1.101:8001 192.168.1.101:8002 192.168.1.101:8003 192.168.1.101:8004 192.168.1.101:8005 192.168.1.101:8006
一般情況下會將前幾個節點作爲主節點,比如此時的8001,8002,8003就應該是主節點
登錄集羣中任意一個節點,連接任意一個客戶端即可:./redis‐cli ‐c ‐h ‐p (‐a訪問服務端密碼,‐c表示集羣模式,指定ip地址和端口號)
例:/opt/redis/redis-5.0.5/src/redis-cli -a chenxuan -c -h 192.168.1.101 -p 8001
cluster info(查看集羣信息)
cluster nodes(查看節點列表)
最開頭的那一串是這個節點的id,master 的是主節點 , slave的是子節點,子節點後面的那一串是主節點的id
默認一個redis集羣會分16384個分片,比如下圖的數據空間分片:一共三個主節點,那就是每個節點的數據空間分片大致爲(16383/3 )=5461個分片。 端口是8001的redis的空間是0-5460,端口是8002的redis的空間是5461-10922,端口是8003的redis的空間是10923-16383。如果給redis分8G的內存的話,那麼一個分片的內存就是0.5M,每個節點大概就是2730.5M的內存。
到這裏我們的集羣就已經搭建完畢了,這個時候就可以正常的使用redis了。
關閉集羣的話,就要逐一關閉了
例:/opt/redis/redis-5.0.5/src/redis-cli -a chenxuan -c -h 192.168.1.101 -p 8002 shutdown