Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。和Memcached相似,但它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set -有序集合)和hash(哈希类型)。与Memcached相同的是,为了保证访问效率,数据都是缓存在内存中;与Memcached不一样的是,redis会周期性的把更新的数据写入磁盘或者写入追加的记录文件,而且在此基础上实现了master-slave(主从)同步。
Redis的数据能够从master(主)服务器向任意数量的slave(从)服务器上同步,从服务器也能够是关联其余从服务器的主服务器,执行单层树复制,是Redis集群的一个重要特性。Redis集群最少要求6个节点,共须要6台机器,因为资源有限,我这边准备了3台机器,每台机器上配置两个节点。
系统环境node
主机名 | IP地址 | 操做系统 | 节点 |
---|---|---|---|
Redis1 | 192.168.2.206 | Centos 7.5 64位 | Master port 700一、slave port 7002 |
Redis2 | 192.168.2.209 | Centos 7.5 64位 | Master port 700一、slave port 7002 |
Redis3 | 192.168.2.210 | Centos 7.5 64位 | Master port 700一、slave port 7002 |
一、安装编译相关软件包c++
[root@redis1 ~]# yum -y install make gcc gcc-c++ wget
二、下载redis并解压redis
[root@redis1 tmp]# wget http://download.redis.io/releases/redis-5.0.0.tar.gz [root@redis1 tmp]# scp redis-5.0.0.tar.gz root@192.168.2.209:/tmp/ [root@redis1 tmp]# scp redis-5.0.0.tar.gz root@192.168.2.210:/tmp/ [root@redis1 tmp]# tar zxvf redis-5.0.0.tar.gz
三、安装redis数据库
[root@redis1 tmp]# cd redis-5.0.0/ [root@redis1 redis-5.0.0]# make [root@redis1 redis-5.0.0]# make install PREFIX=/data/redis
出现上图画面表示安装成功缓存
一、复制配置文件
注:每台机器两个实例,故须要复制两份对应的配置文件bash
[root@redis1 redis-5.0.0]# mkdir /data/redis/conf [root@redis1 redis-5.0.0]# cp redis.conf /data/redis/conf/redis-7001.conf [root@redis1 redis-5.0.0]# cp redis.conf /data/redis/conf/redis-7002.conf
二、修改配置文件
修改如下地方服务器
bind 192.168.2.206 #redis监听的本地IP地址 port 7001 #监听端口,另外一个节点改成7002 daemonize yes #开启后台运行,no表示运行在前台 pidfile /var/run/redis_7001.pid #pid文件,另外一个节点改成7002 appendonly yes #开启aof日志,每次写操做都会记录一条日志 cluster-enabled yes #开启集群,把注释#去掉 cluster-config-file nodes-7001.conf #集群的配置文件,首次启动会自动建立,另外一个节点改成7002 cluster-node-timeout 15000 #集群节点链接超时时间,15秒
三、添加firewalld防火墙容许端口网络
[root@redis1 redis-5.0.0]# firewall-cmd --permanent --add-port=7001-7002/tcp [root@redis1 redis-5.0.0]# firewall-cmd --permanent --add-port=17001-17002/tcp [root@redis1 redis-5.0.0]# firewall-cmd --reload
四、启动redis服务
建立启动脚本,redis-all.shapp
#!/bin/bash /data/redis/bin/redis-server /data/redis/conf/redis-7001.conf /data/redis/bin/redis-server /data/redis/conf/redis-7002.conf
将脚本分发到另外两台主机上tcp
[root@redis1 ~]# scp redis-all.sh root@192.168.2.209:/root/ [root@redis1 ~]# scp redis-all.sh root@192.168.2.210:/root/
运行脚本,启动redis,每一个节点都要启动
[root@redis1 ~]# sh redis-all.sh
五、启动集群
建立启动集群脚本,redis-cluster.sh
#!/bin/bash /data/redis/bin/redis-cli --cluster create 192.168.2.206:7001 192.168.2.209:7001 192.168.2.210:7001 192.168.2.206:7002 192.168.2.209:7002 192.168.2.210:7002 --cluster-replicas 1
参数说明 --cluster create:表示建立redis集群 --cluster-replicas 1:表示为集群中的每个主节点指定一个从节点,即一比一的复制。
将脚本分发到另外两台主机上
[root@redis1 ~]# scp redis-cluster.sh root@192.168.2.209:/root/ [root@redis1 ~]# scp redis-cluster.sh root@192.168.2.210:/root/
运行脚本,启动集群,只须要在其中一个节点启动便可
[root@redis1 ~]# sh redis-cluster.sh
注:中途须要输入yes来确认
一、设置redis集群密码
注:全部节点都须要设置密码,且密码必须一致。
[root@redis1 ~]# /data/redis/bin/redis-cli -h 192.168.2.206 -p 7001 -c 192.168.2.206:7001> config set masterauth xuad123456 192.168.2.206:7001> config set requirepass xuad123456 192.168.2.206:7001> exit
二、将密码写入配置文件
注:全部节点都须要将密码写入配置文件
[root@redis1 ~]# /data/redis/bin/redis-cli -h 192.168.2.206 -p 7001 -c -a xuad123456 192.168.2.206:7001> config rewrite 192.168.2.206:7001> exit
三、查看密码
[root@redis1 ~]# /data/redis/bin/redis-cli -h 192.168.2.206 -p 7001 -c -a xuad123456 192.168.2.209:7001> config get masterauth 192.168.2.209:7001> config get requirepass