wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xzf redis-5.0.5.tar.gz
cd redis-5.0.5
make
cd src
make install
#默认配置启动
./redis-server
#使用配置文件启动
./redis-server ../redis.conf
使用redis的控制台:
./redis-cli
测试安装是否成功
redis要求至少三主三从共6个节点才能组成redis集群
此前准备了两台机器:192.168.132.11、192.168.131.12 本文集群试用三主三从六个节点
安装操作同上
配置操作:
修改redis配置文件redis.conf:
daemonize yes # 守护进程模式开启(后台启动)
bind 0.0.0.0 #默认只监听本机访问也可以将需要访问的IP空格分隔添加在后面,需要注释掉
requirepass 5555 #建议更改,不更改的话,如果后续要设置密码时,就得一个一个节点的设置过去
masterauth mastertest #建议更改,当master服务设置了密码保护时,slav服务连接master的密码
cluster-enabled yes #启用集群
cluster-config-file nodes-6379.conf #集群节点配置文件
需要创建三个文件夹为:
mkdir -p /usr/local/redis-cluster/6379
mkdir -p /usr/local/redis-cluster/6380
mkdir -p /usr/local/redis-cluster/6381
拷贝配置文件
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis-cluster/6379/redis_6379.conf
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis-cluster/6380/redis_6380.conf
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis-cluster/6381/redis_6381.conf
修改配置文件中的port,cluster-config-file,pidfile:
修改标红部份(端口)
port 6379
cluster-config-file nodes-6379.conf
pidfile /var/run/redis_6379.pid
改完一台机器上的,其他机器的也就ok了
scp -rp ./redis-cluster/ 192.168.132.11/usr/local/
修改/etc/security/limits.conf文件,设置nofile 的值(看情况设置)
* soft nofile 65536
* hard nofile 65536
重启生效
nofile数量 ——文件描述符数量:打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
检验:查看redis的pid,执行cat /proc/$PID/limits5
启动redis:
分别使用3个配置文件启动redis
./redis-server /usr/local/redis-cluster/6379/redis_6379.conf
./redis-server /usr/local/redis-cluster/6380/redis_6380.conf
./redis-server /usr/local/redis-cluster/6381/redis_6381.conf
设置每个redis节点的密码,每个节点密码需要一致(redis_x.conf中设置了 requirepass 5555 可以忽略):
指定端口连接redis
./redis-cli -p 6381
config set requirepass 5555
在其它节点上也做上述操作,
集群管理器启动:
./redis-cli -a 5555 -cluster create 192.168.132.11:6379 192.168.132.12:6379 192.168.132.11:6380 192.168.132.12:6380 192.168.132.11:6381 192.168.132.12:6381 --cluster-replicas 1
1) a #指定集群密码 。
2) create #表示创建一个redis集群。
3) --cluster-replicas 1 #表示为集群中的每一个主节点指定一个从节点,即一比一的复制。
遇到Can I set the above configuration?提示时需要输入yes再确认,否则后续连上redis集群,执行set key value就会报错:
到此为止集群搭建就结束了
按照上述的redis集群启动模式,得连上n台机器,执行n遍启动操作,不如写一个脚本去统一启动:
#!/bin/sh
./redis-server /usr/local/redis-cluster/6379/redis_6379.conf
./redis-server /usr/local/redis-cluster/6380/redis_6380.conf
./redis-server /usr/local/redis-cluster/6381/redis_6381.conf
ssh [email protected] "cd /usr/local/redis-5.0.5/src ; ./redis-server /usr/local/redis-cluster/6379/redis_6379.conf ; ./redis-server /usr/local/redis-cluster/6380/redis_6380.conf ; ./redis-server /usr/local/redis-cluster/6381/redis_6381.conf"
./redis-cli -a test --cluster create 192.168.132.11:6379 192.168.132.12:6379 192.168.132.11:6380 192.168.132.12:6380 192.168.132.11:6381 192.168.132.12:6381 --cluster-replicas 1
该脚本每ssh一台机器就需要输入一次密码,多了也难搞,可以再配置一个免密登录,可以自行去查看怎么配置,这里就不细写了。