Redis-3.2.4服务搭建
?
1.下載安裝包并解壓
全部版本地址:http://download.redis.io/releases
安裝包下載:?http://download.redis.io/releases/redis-3.2.4.tar.gz
我們這里使用3.2.4
2.編譯安裝
cd redis-3.2.4 make && make install可能異常:(root用戶部署不會(huì)出現(xiàn)該問題)
說明無權(quán)限,需要權(quán)限,修改目錄當(dāng)前用戶權(quán)限。
異常2
MAKE hiredis cd hiredis && make static make[3]: 進(jìn)入目錄“/xxx/redis/redis-3.2.4/deps/hiredis” gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c make[3]: gcc:命令未找到 make[3]: *** [net.o] 錯(cuò)誤 127 make[3]: 離開目錄“/xxx/redis/redis-3.2.4/deps/hiredis” make[2]: *** [hiredis] 錯(cuò)誤 2 make[2]: 離開目錄“/xxx/redis/redis-3.2.4/deps” make[1]: [persist-settings] 錯(cuò)誤 2 (忽略)CC adlist.o /bin/sh: cc: 未找到命令 make[1]: *** [adlist.o] 錯(cuò)誤 127 make[1]: 離開目錄“/xxx/redis/redis-3.2.4/src” make: *** [all] 錯(cuò)誤 2運(yùn)行
yum -y install gcc-c++ gcc刪除原有目錄,重新解壓redis
3.進(jìn)入src目錄下將 redis-trib.rb 復(fù)制到 /usr/local/bin 目錄下
cd src cp redis-trib.rb /usr/local/bin/4.創(chuàng)建redis節(jié)點(diǎn),配置相關(guān)配置文件
- 在redis根目錄下創(chuàng)建redis_cluster目錄
- mkdir redis_cluster
在?redis_cluster 目錄下,創(chuàng)建名為7000、7001、7002的目錄,并將 redis.conf 拷貝到這三個(gè)目錄中
mkdir 7000 7001 7002?
?
- 將redis.conf 復(fù)制到三個(gè)目錄中
- 修改配置文件
- port 7000 //端口7000,7002,7003
bind 本機(jī)ip //默認(rèn)ip為127.0.0.1 需要改為其他節(jié)點(diǎn)機(jī)器可訪問的ip 否則創(chuàng)建集群時(shí)無法訪問對應(yīng)的端口,無法創(chuàng)建集群
daemonize yes //redis后臺(tái)運(yùn)行
pidfile /var/run/redis_7000.pid //pidfile文件對應(yīng)7000,7001,7002
cluster-enabled yes //開啟集群 把注釋#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次啟動(dòng)自動(dòng)生成 7000,7001,7002
cluster-node-timeout 15000 //請求超時(shí) 默認(rèn)15秒,可自行設(shè)置
appendonly yes //aof日志開啟 有需要就開啟,它會(huì)每次寫操作都記錄一條日志
另外一臺(tái)服務(wù)器也是相同操作,端口不同(7003,7004,7005),cluster模式最少需要六個(gè)節(jié)點(diǎn)、
5.啟動(dòng)六個(gè)節(jié)點(diǎn)
第一臺(tái)機(jī)器上執(zhí)行 redis-server redis_cluster/7000/redis.conf redis-server redis_cluster/7001/redis.conf redis-server redis_cluster/7002/redis.conf另外一臺(tái)機(jī)器上執(zhí)行 redis-server redis_cluster/7003/redis.conf redis-server redis_cluster/7004/redis.conf redis-server redis_cluster/7005/redis.conf如果遇到?jīng)]有redis-server命令,可以直接進(jìn)入目錄啟動(dòng)
/usr/local/bin/redis-server6.查看是否啟動(dòng)成功
[test@test 7000]$ ps -ef|grep redis root 6931 1 0 16:37 ? 00:00:02 /usr/local/bin/redis-server 172.20.2.83:7000 [cluster] root 6935 1 0 16:37 ? 00:00:02 /usr/local/bin/redis-server 172.20.2.83:7001 [cluster] root 6939 1 0 16:37 ? 00:00:01 /usr/local/bin/redis-server 172.20.2.83:7002 [cluster]7.創(chuàng)建集群,兩個(gè)節(jié)點(diǎn)連接起來
Redis 官方提供了 redis-trib.rb 這個(gè)工具,就在解壓目錄的 src 目錄中,第三步中已將它復(fù)制到 /usr/local/bin 目錄中,可以直接在命令行中使用了。使用下面這個(gè)命令即可完成安裝。
這個(gè)工具是用 ruby 實(shí)現(xiàn)的,所以需要安裝 ruby。安裝命令如下: sudo yum -y install ruby ruby-devel rubygems rpm-build sudo gem install redis --version 3.0.0 (注意要安裝3.0.0版本,3.3.2版本會(huì)報(bào)錯(cuò)!!報(bào)錯(cuò)原因未知)?
?
[root@test~]# /usr/local/bin/redis-trib.rb create --replicas 1 172.20.2.83:7000 172.20.2.83:7001 172.20.2.83:7002 172.20.2.86:7003 172.20.2.86:7004 172.20.2.86:7005 >>> Creating cluster >>> Performing hash slots allocation on 6 nodes... Using 3 masters: 172.20.2.86:7003 172.20.2.83:7000 172.20.2.86:7004 Adding replica 172.20.2.83:7001 to 172.20.2.86:7003 Adding replica 172.20.2.86:7005 to 172.20.2.83:7000 Adding replica 172.20.2.83:7002 to 172.20.2.86:7004 M: de87fb089bdafad79fb1078da75cf522aa192ba8 172.20.2.83:7000slots:5461-10922 (5462 slots) master S: c72a1f5b4fff707c62f60265073a334c41829a87 172.20.2.83:7001replicates c430fc18fdb74dd955b106ef44abe2258ad457da S: 7861067e7803d99c3844162d157283cb98d9edc9 172.20.2.83:7002replicates c72ab6cb7ddc6c3c7529f7d58ab9d9bb53ceef48 M: c430fc18fdb74dd955b106ef44abe2258ad457da 172.20.2.86:7003slots:0-5460 (5461 slots) master M: c72ab6cb7ddc6c3c7529f7d58ab9d9bb53ceef48 172.20.2.86:7004slots:10923-16383 (5461 slots) master S: f56b724050d2c86be6e1efe0de417cfc2821a2c8 172.20.2.86:7005replicates de87fb089bdafad79fb1078da75cf522aa192ba8 Can I set the above configuration? (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join.. >>> Performing Cluster Check (using node 172.20.2.83:7000) M: de87fb089bdafad79fb1078da75cf522aa192ba8 172.20.2.83:7000slots:5461-10922 (5462 slots) master1 additional replica(s) M: c430fc18fdb74dd955b106ef44abe2258ad457da 172.20.2.86:7003slots:0-5460 (5461 slots) master1 additional replica(s) M: c72ab6cb7ddc6c3c7529f7d58ab9d9bb53ceef48 172.20.2.86:7004slots:10923-16383 (5461 slots) master1 additional replica(s) S: c72a1f5b4fff707c62f60265073a334c41829a87 172.20.2.83:7001slots: (0 slots) slavereplicates c430fc18fdb74dd955b106ef44abe2258ad457da S: 7861067e7803d99c3844162d157283cb98d9edc9 172.20.2.83:7002slots: (0 slots) slavereplicates c72ab6cb7ddc6c3c7529f7d58ab9d9bb53ceef48 S: f56b724050d2c86be6e1efe0de417cfc2821a2c8 172.20.2.86:7005slots: (0 slots) slavereplicates de87fb089bdafad79fb1078da75cf522aa192ba8 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered.安裝成功
異常:
如果上述步驟不安裝3.0.0版本報(bào)錯(cuò)如下:
8.測試集群是否可用
[root@test ~]# redis-cli -h 172.20.2.83 -c -p 7002 172.20.2.83:7002> set key1 value1 -> Redirected to slot [9189] located at 172.20.2.83:7000 OK 172.20.2.83:7000> get key1 "value1" 172.20.2.83:7000>?
參考:
https://www.oschina.net/code/snippet_1046345_44151
http://www.cnblogs.com/wuxl360/p/5920330.html
redis超過使用內(nèi)存大小:http://www.cnblogs.com/tdws/p/5727633.html
redis配置參數(shù):http://blog.csdn.net/neubuffer/article/details/17003909
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Redis-3.2.4服务搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux后台开发具备能力集锦
- 下一篇: ubuntu 安装cmake