基于redis4.0.1版本搭建一个redis集群,基于centos7 。

记得第一次自己搭建一个redis集群那是一步一个坑啊。填了一个又来一个。下面本人就我的经验用一个普通用户来搭建一个redis集群。

不相信! 来来来确认一下。

[www@redis1 ~]$ ps -ef|grep redis
www        7503      1  0 19:56 ?        00:00:16 redis-server 192.168.92.11:7004 [cluster]
www        7508      1  0 19:56 ?        00:00:15 redis-server 192.168.92.11:7003 [cluster]
www        7513      1  0 19:56 ?        00:00:09 redis-server 192.168.92.11:7005 [cluster]
www        7627   7366  0 21:04 pts/0    00:00:00 grep --color=auto redis

看到吧,这样都能搭建出来,就不必说用root了。

环境说明:

建立两台服务器进行安装

软件下载目录:/data/package/

进入目录后下载redis4.0.1

sudo wget http://download.redis.io/releases/redis-4.0.1.tar.gz

安装依赖软件

sudo yum -y install gcc gcc-c++

进入到下载目录将软件解压。

sudo tar -xf redis-4.0.1.tar.gz

进入到安装目录安装软件

cd redis-4.0.1 && make && make install

创建redis集群目录

第一台服务器

sudo mkdir -p /data/soft/redis/{7000,7001,7002}

第二台服务器

sudo mkdir -p /data/soft/redis/{7003,7004,7005}

拷贝配置文件到集群目录。(先拷贝一个)

sudo cp redis.conf /data/soft/redis/7000/

两台服务器将集群目录赋予www权限

sudo chown www:www -R /data/soft/redis/

编辑集群配置文件

vim /data/soft/redis/7003/redis.conf

# 指定ip地址
bind 192.168.92.11
# 关闭保护模式
protected-mode no
# 设定端口号
port 7000
# 后台运行(守护进程)
daemonize yes
# pid
pidfile /var/run/redis_7000.pid
# 日志级别 先设置一个可以调试的日志级别,以便于排错。
loglevel debug
# 日志文件位置
logfile /log/redis/redis_7000.log
# 集群密码设置
masterauth 123456
# redis密码
requirepass 123456
# 每次写操作都记录一条日志
appendonly yes
# appendonly.aof文件位置
appendfilename appendonly.aof
# 开启集群 将注释去掉
cluster-enabled yes
# nodes文件位置
cluster-config-file nodes-7000.conf
# 超时时间,默认15秒,可以改成5秒
cluster-node-timeout 5000

将配置文件拷贝到其他节点,利用‘sed -i 's/7000/7001/g' /data/soft/redis/7001/redis.conf’将其他配置文件更改为其它的端口号和不同的文件名称。

创建日志文件并授予www用户权限。

sudo mkdir -p /log/redis/ && sudo chown www:www /log/redis

将redis命令授权给www用户。

sudo www:www /usr/local/bin/redis-*

启动所有节点。

redis-server /data/soft/redis/7000/redis.conf && redis-server /data/soft/redis/7001/redis.conf &&redis-server /data/soft/redis/7002/redis.conf

redis-server /data/soft/redis/7003/redis.conf && redis-server /data/soft/redis/7004/redis.conf && redis-server /data/soft/redis/7005/redis.conf

 

开始搭建集群

安装必备的软件ruby

安装rvm命令

先用命令检查最新的公钥“curl -ssL get.rvm.io | bash -s stable”

gpg: 已创建目录‘/home/admin/.gnupg’
gpg: 新的配置文件‘/home/admin/.gnupg/gpg.conf’已建立
gpg: 警告:在‘/home/admin/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
gpg: 钥匙环‘/home/admin/.gnupg/pubring.gpg’已建立
gpg: 于 2019年01月04日 星期五 06时01分48秒 CST 创建的签名,使用 RSA,钥匙号 39499BDB
gpg: 无法检查签名:没有公钥
GPG signature verification failed for '/home/admin/.rvm/archives/rvm-1.29.7.tgz' - 'https://github.com/rvm/rvm/releases/download/1.29.7/1.29.7.tar.gz.asc'! Try to install GPG v2 and then fetch the public key:

    gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

or if it fails:

    command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
    command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -

In case of further problems with validation please refer to https://rvm.io/rvm/security

利用提示将公钥下载下来。

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

然后下载rvm命令

curl -ssL get.rvm.io | bash -s stable

Downloading https://github.com/rvm/rvm/archive/1.29.7.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.7/1.29.7.tar.gz.asc
gpg: 于 2019年01月04日 星期五 06时01分48秒 CST 创建的签名,使用 RSA,钥匙号 39499BDB
gpg: 完好的签名,来自于“Piotr Kuczynski <piotr.kuczynski@gmail.com>”
gpg: 警告:这把密钥未经受信任的签名认证!
gpg:       没有证据表明这个签名属于它所声称的持有者。
主钥指纹: 7D2B AF1C F37B 13E2 069D  6956 105B D0E7 3949 9BDB
GPG verified '/home/admin/.rvm/archives/rvm-1.29.7.tgz'
Installing RVM to /home/admin/.rvm/
    Adding rvm PATH line to /home/admin/.profile /home/admin/.mkshrc /home/admin/.bashrc /home/admin/.zshrc.
    Adding rvm loading line to /home/admin/.profile /home/admin/.bash_profile /home/admin/.zlogin.
Installation of RVM in /home/admin/.rvm/ is almost complete:

  * To start using RVM you need to run `source /home/admin/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

刷新bash文件

source /home/www/.rvm/scripts/rvm

查看有哪些版本的ruby安装包

rvm list known | grep ruby | head

[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.8]
[ruby-]2.4[.5]

安装高于2.2版本的ruby软件

rvm install 2.4.5

安装redis集群

gem install redis

启动集群

等等太早了,这么启动集群会启动不成功的,还得修改一个文件。

vim /home/www/.rvm/gems/ruby-2.4.1/gems/redis-4.1.0/lib/redis/client.rb

    DEFAULTS = {
      :url => lambda { ENV["REDIS_URL"] },
      :scheme => "redis",
      :host => "127.0.0.1",
      :port => 6379,
      :path => nil,
      :timeout => 5.0,
      :password => "123456",
      :db => 0,
      :driver => nil,
      :id => nil,
      :tcp_keepalive => 0,
      :reconnect_attempts => 1,
      :reconnect_delay => 0,
      :reconnect_delay_max => 0.5,
      :inherit_socket => false
    }

一定要将password改成和redis配置文件里的一样。

现在可以启动集群了

sudo ln -s /data/package/redis-4.0.1/src/redis-trib.rb ~/bin/

redis-trib.rb create --replicas 1 192.168.92.10:7000 192.168.92.10:7001 192.168.92.10:7002 192.168.92.11:7003 192.168.92.11:7004 192.168.92.11:7005

在提示输入的地方输入yes即可启动集群

验证集群

redis-cli -c -h 192.168.92.10 -p 7000 -a 123456

192.168.92.10:7000> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:12393
cluster_stats_messages_pong_sent:12398
cluster_stats_messages_sent:24791
cluster_stats_messages_ping_received:12393
cluster_stats_messages_pong_received:12393
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:24791
192.168.92.10:7000> cluster nodes
97bf1e991e5df0c511b4ebe08ec67132d6d8362b 192.168.92.11:7003@17003 master - 0 1553331130000 4 connected 5461-10922
ea8a814edba8e6f9a3853b9064c4c4d44efd3fe4 192.168.92.10:7002@17002 slave 97bf1e991e5df0c511b4ebe08ec67132d6d8362b 0 1553331130000 4 connected
a04dcf668e221716f3f7bcf937cf5787933006fd 192.168.92.10:7000@17000 myself,master - 0 1553331128000 1 connected 0-5460
b406f10603109d7dc67a1cc1eb35f95f398c81aa 192.168.92.10:7001@17001 master - 0 1553331131404 2 connected 10923-16383
fafa6519a6a5d15d0b1497e1d4742226982a720a 192.168.92.11:7004@17004 slave a04dcf668e221716f3f7bcf937cf5787933006fd 0 1553331131000 5 connected
94d9df6bfd9b0fd7325604a56b3efd43250166b8 192.168.92.11:7005@17005 slave b406f10603109d7dc67a1cc1eb35f95f398c81aa 0 1553331130395 6 connected
192.168.92.10:7000> set foo test
-> Redirected to slot [12182] located at 192.168.92.10:7001
OK
192.168.92.10:7001> keys *
1) "foo"

能自动跳转则说明redis集群搭建成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值