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用戶部署不會出現該問題)
說明無權限,需要權限,修改目錄當前用戶權限。
異常2
MAKE hiredis cd hiredis && make static make[3]: 進入目錄“/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] 錯誤 127 make[3]: 離開目錄“/xxx/redis/redis-3.2.4/deps/hiredis” make[2]: *** [hiredis] 錯誤 2 make[2]: 離開目錄“/xxx/redis/redis-3.2.4/deps” make[1]: [persist-settings] 錯誤 2 (忽略)CC adlist.o /bin/sh: cc: 未找到命令 make[1]: *** [adlist.o] 錯誤 127 make[1]: 離開目錄“/xxx/redis/redis-3.2.4/src” make: *** [all] 錯誤 2運行
yum -y install gcc-c++ gcc刪除原有目錄,重新解壓redis
3.進入src目錄下將 redis-trib.rb 復制到 /usr/local/bin 目錄下
cd src cp redis-trib.rb /usr/local/bin/4.創建redis節點,配置相關配置文件
- 在redis根目錄下創建redis_cluster目錄
- mkdir redis_cluster
在?redis_cluster 目錄下,創建名為7000、7001、7002的目錄,并將 redis.conf 拷貝到這三個目錄中
mkdir 7000 7001 7002?
?
- 將redis.conf 復制到三個目錄中
- 修改配置文件
- port 7000 //端口7000,7002,7003
bind 本機ip //默認ip為127.0.0.1 需要改為其他節點機器可訪問的ip 否則創建集群時無法訪問對應的端口,無法創建集群
daemonize yes //redis后臺運行
pidfile /var/run/redis_7000.pid //pidfile文件對應7000,7001,7002
cluster-enabled yes //開啟集群 把注釋#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次啟動自動生成 7000,7001,7002
cluster-node-timeout 15000 //請求超時 默認15秒,可自行設置
appendonly yes //aof日志開啟 有需要就開啟,它會每次寫操作都記錄一條日志
另外一臺服務器也是相同操作,端口不同(7003,7004,7005),cluster模式最少需要六個節點、
5.啟動六個節點
第一臺機器上執行 redis-server redis_cluster/7000/redis.conf redis-server redis_cluster/7001/redis.conf redis-server redis_cluster/7002/redis.conf另外一臺機器上執行 redis-server redis_cluster/7003/redis.conf redis-server redis_cluster/7004/redis.conf redis-server redis_cluster/7005/redis.conf如果遇到沒有redis-server命令,可以直接進入目錄啟動
/usr/local/bin/redis-server6.查看是否啟動成功
[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.創建集群,兩個節點連接起來
Redis 官方提供了 redis-trib.rb 這個工具,就在解壓目錄的 src 目錄中,第三步中已將它復制到 /usr/local/bin 目錄中,可以直接在命令行中使用了。使用下面這個命令即可完成安裝。
這個工具是用 ruby 實現的,所以需要安裝 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版本會報錯!!報錯原因未知)?
?
[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版本報錯如下:
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超過使用內存大小:http://www.cnblogs.com/tdws/p/5727633.html
redis配置參數:http://blog.csdn.net/neubuffer/article/details/17003909
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Redis-3.2.4服务搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux后台开发具备能力集锦
- 下一篇: linux cmake编译源码,linu