redis 单节点,集群,哨兵 部署

 

redis集群安装node

1.环境

redis版本:5.0.5redis

操做系统:ubuntu 14.04以上版本或内核4.2.0-27-generic以上ubuntu

ruby:sudo apt-get install rubyruby

2.单节点安装

2.1.下载

http://download.redis.io/releases/redis-5.0.5.tar.gzapp

2.2.解压

tar -xvf redis-5.0.5.tar.gz测试

2.3.编译安装

咱们安装到opt下面ui

sudo mv redis-5.0.5 /opt/redisspa

给当前用户赋权(root不须要此操做)操作系统

sudo chown -R 用户名:用户组 /opt/redis线程

进入到/opt/redis

cd /opt/redis

编译

make


 

编译测试make test
















 置redis.confvi redis.conf修改daemonizeno为daemonizeyes修改最大内存2G(redis的内存为物理内存的0.75,就是说,物理内存*0.75/节点数)修改#maxmemory为maxmemory 2147483648修改日志文件logfile "redis.log"启动服务:./src/redis-server redis.conf验证是否启动:ps -ef|grep reids

2.4.测试

./src/redis-cli

set aa 1

get aa

del aa

keys *



 


到此,咱们单节点redis安装成功

2.5.配置密码

中止redis服务

./src/redis-cli shutdown





配置redis.confvi redis.conf修改#requirepass foobaredrequirepass 123456(密码123456,能够本身修改。删除#启动服务:./src/redis-server redis.conf

登录加-a 指定密码

./src/redis-cli -a 123456

3.集群安装

3.1.安装

集群计划3主、三从,一共六个节点。生产状况下,须要6台主机。最低两个主机,三个主节点在一个主机,三个从节点在一个主机。本地模拟配置,是一个主机。

规划主节点端口:700一、700二、7003

从节点端口:700四、700五、7006

sudo mkdir /opt/redis_cluster

sudo mkdir /opt/redis_cluster/

sudo mkdir /opt/redis_cluster/7001

sudo mkdir /opt/redis_cluster/7002

sudo mkdir /opt/redis_cluster/7003

sudo mkdir /opt/redis_cluster/7004

sudo mkdir /opt/redis_cluster/7005

sudo mkdir /opt/redis_cluster/7006

给文件夹赋权

sudo chown -R 用户名:用户组 /opt/redis_cluster/

复制redis.conf文件到/opt/redis_cluster/7001

sudo cp /opt/redis/redis.conf /opt/redis_cluster/7001/

配置redis.conf文件

vi /opt/redis_cluster/7001/redis.conf

修改:

端口












port 7001启用集群cluster-enabled yes集群节点文件cluster-config-file nodes.conf集群超时设置cluster-node-timeout 5000开启aof模式appendonly yes修改线程问家pidfile /var/run/redis_7001.pid配置访问密码

requirepass 123456

配置访问主节点 的密码

masterauth 123456

后台运行

daemonize yes

数据存放目录

dir /opt/redis_cluster/7001

注释bind

#bind 127.0.0.1




修改最大内存2G(redis的内存为物理内存的0.75,就是说,物理内存*0.75/节点数)修改#maxmemory为maxmemory 2147483648修改日志保存文件logfile "redis.log"


 


 

把/opt/redis_cluster/7001/redis.conf复制到/opt/redis_cluster/700二、/opt/redis_cluster/700三、/opt/redis_cluster/700四、/opt/redis_cluster/700五、/opt/redis_cluster/7006下

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7002/

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7003/

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7004

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7005

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7006

修改端口、和线程文件

sed -i "s/7001/7002/g" /opt/redis_cluster/7002/redis.conf

sed -i "s/7001/7003/g" /opt/redis_cluster/7003/redis.conf

sed -i "s/7001/7004/g" /opt/redis_cluster/7004/redis.conf

sed -i "s/7001/7005/g" /opt/redis_cluster/7005/redis.conf

sed -i "s/7001/7006/g" /opt/redis_cluster/7006/redis.conf

动redis

cd /opt/redis_cluster/7001

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7002

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7003

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7004

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7005

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7006

/opt/redis/src/redis-server redis.conf






























查看启动节点ps -ef|grep redis建立集群/opt/redis/src/redis-cli --cluster create 192.168.3.153:7001 192.168.3.153:7002 192.168.3.153:7003 --cluster-replicas 0 -a 123456配置集群主从复制查看集群状态/opt/redis/src/redis-cli -c -p 7001 -a 123456 cluster nodes动态添加节点添加节点/opt/redis/src/redis-cli -c -a 123456 -p 7001 cluster meet 192.168.3.153 7004/opt/redis/src/redis-cli -c -a 123456 -p 7001 cluster meet 192.168.3.153 7005/opt/redis/src/redis-cli -c -a 123456 -p 7001 cluster meet 192.168.3.153 7006设置7004为7001的节点/opt/redis/src/redis-cli -c -a 123456 -p 7004 cluster REPLICATEbd88b8e1a32341b90eb0174cc13f227110d4cd45(是主节点的编号,须要自行修改)设置7005为7002的节点/opt/redis/src/redis-cli -c -a 123456 -p 7005 cluster REPLICATE bd88b8e1a32341b90eb0174cc13f227110d4cd45(是主节点的编号,须要自行修改)设置7006为7003的节点/opt/redis/src/redis-cli -c -a 123456 -p 7006 cluster REPLICATE b7716a9a899e4b12a2f368e2e07f0c97fdefa248(是主节点的编号,须要自行修改)查看集群信息集群搭建完毕

3.2.验证

登录:/opt/redis$ src/redis-cli -c -a 123456 -p 7001

set aa 1

set bb 1


  



















咱们发现aa写在7001节点上,bb写在7002节点上中止7001节点shutdown咱们发现aa还能够取到1,可是在7004个节点上查看集群状态cluster nodes咱们发现7001已经disconnected了,7004是master节点启动7001/opt/redis/src/redis-server /opt/redis_cluster/7001/redis.conf查看集群状态我 们看到7001已经恢复,变为slave节点咱们的高可用配置成功。任何一个节点挂了不受影响。可是若是是主从都挂了,还会损失数据,这个损失部署不是平均1/3直接,是根据key的hash分布来讲的。

4.哨兵模式





哨兵模式是对于单个主历来说的。安装一个主节点、两个从节点、三个哨兵主节点:8001从节点:8002、8003三个哨兵:12001、12002、12003、

4.1.安装

创建redis 文件夹

sudo mkdir /opt/sentinel/redis8001

sudo mkdir /opt/sentinel/redis8002

sudo mkdir /opt/sentinel/redis8003

创建sentinel文件夹

sudo mkdir /opt/sentinel/sentinel12001

sudo mkdir /opt/sentinel/sentinel12002

sudo mkdir /opt/sentinel/sentinel12003

cp /opt/redis/sentinel.conf /opt/sentinel/sentinel12001

cp /opt/redis/sentinel.conf /opt/sentinel/sentinel12002

cp /opt/redis/sentinel.conf /opt/sentinel/sentinel12003

修改权限(root用户不须要)

sudo chown -R 用户名:用户组 /opt/sentinel/

4.1.1.配置redis节点

配置redis8001节点

vi /opt/sentinel/redis8001/redis.conf

注释bind

#bind 127.0.0.1

修改端口

port 8001

在后台执行

daemonize yes

数据存放目录

dir /opt/sentinel/redis8001








主节点密码masterauth 123456本节点密码requirepass 123456修改最大内存2G(redis的内存为物理内存的0.75,就是说,物理内存*0.75/节点数)修改#maxmemory为maxmemory 2147483648修改日志文件logfile "redis.log"

配置redis8002节点

cp /opt/sentinel/redis8001/redis.conf /opt/sentinel/redis8002/redis.conf

vi /opt/sentinel/redis8002/redis.conf

注释bind

#bind 127.0.0.1

修改端口

port 8002

在后台执行

daemonize yes

数据存放目录

dir /opt/sentinel/redis8002








配置复制节点replicaof 192.168.3.153 8001主节点密码masterauth 123456本节点密码requirepass 123456

配置redis8003节点

cp /opt/sentinel/redis8001/redis.conf /opt/sentinel/redis8003/redis.conf

vi /opt/sentinel/redis8002/redi3.conf

注释bind

#bind 127.0.0.1

修改端口

port 8003

在后台执行

daemonize yes

数据存放目录

dir /opt/sentinel/redis8003










配置复制节点replicaof 192.168.3.153 8001主节点密码masterauth 123456本节点密码requirepass 123456启动redis节点/opt/redis/src/redis-server /opt/sentinel/redis8001/redis.conf/opt/redis/src/redis-server /opt/sentinel/redis8002/redis.conf/opt/redis/src/redis-server /opt/sentinel/redis8003/redis.conf

4.1.2.配置sentinel

配置sentinel12001节点

vi /opt/sentinel/sentinel12001/sentinel.conf

修改端口

port 12001

后台运行

daemonize yes

进程文件

pidfile /var/run/redis-sentinel-12001.pid

监控主节点名称,当有两个sentinel发现主节点挂了,切换节点。





















sentinel monitor mymaster 192.168.3.153 8001 2sentinel心跳每隔1分钟发送心跳sentinel down-after-milliseconds mymaster 60000当failover开始后,在此时间内仍然没有触发任何failover操做,当前sentinel 将会认为这次failoer失败sentinel failover-timeout mymaster 180000当新master产生时,同时进行slaveof到新master并进行同步复制的slave个数,也就是同时几个slave进行同步。由于在salve执行salveof与新master同步时,将会终止客户端请求,所以这个值须要权衡。此值较大,意味着“集群”终止客户端请求的时间总和和较大,此值较小,意味着“集群”在故障转移期间,多个salve向客户端提供服务时仍然使用旧数据sentinel parallel-syncs mymaster 1配置sentinel 12002节点cp /opt/sentinel/sentinel12001/sentinel.conf /opt/sentinel/sentinel12002/sentinel.conf把端口改成12002sed -i 's/12001/12002/g' /opt/sentinel/sentinel12002/sentinel.conf配置sentinel 12003节点cp /opt/sentinel/sentinel12001/sentinel.conf /opt/sentinel/sentinel12003/sentinel.conf把端口改成12003sed -i 's/12001/12003/g' /opt/sentinel/sentinel12003/sentinel.conf启动哨兵节点/opt/redis/src/redis-sentinel /opt/sentinel/sentinel12001/sentinel.conf/opt/redis/src/redis-sentinel /opt/sentinel/sentinel12002/sentinel.conf/opt/redis/src/redis-sentinel /opt/sentinel/sentinel12003/sentinel.conf查看哨兵ps -ef|grep sentinel

4.2.







































验证登录主节点/opt/redis/src/redis-cli -p 8001 -a 123456设置aa等于1set aa 1关闭主节点shutdown退出exit登录8002节点/opt/redis/src/redis-cli -p 8002 -a 123456查看复制节点信息info replication当前节点是从节点登录8003节点/opt/redis/src/redis-cli -p 8003 -a 123456查看复制节点信息info replication8003节点是主节点设置aa为3set aa 3get aa启 动8001节点/opt/redis/src/redis-server /opt/sentinel/redis8001/redis.conf查看ps -ef|grep redis|grep 800登录8001节点/opt/redis/src/redis-cli -p 8001 -a 123456查看复制节点info replication查 看aa的值为3,刚才在8003上给aa赋值3已经同步过来了

5.安装中问题

Increased maximum number of open files to 10032 (it was originally set to 1024).

解决办法
#查看系统限制

ulimit -a

#设置“open files”数量

ulimit -n 10032

相关文章
相关标签/搜索