一.服务器准备

本文准备了3台服务器 , 分别是

172.18.0.231

172.18.0.232

172.18.0.233

每台运行2个redis实例, 端口分别为7000 7001 ,即总共6个redis节点

二.安装必要包并配置环境

yum install gcc

调整服务器参数 , 以得到最大性能

1.调整服务器最大文件打开数

打开文件 /etc/security/limits.conf 在最后加入以下文件 , 并保存

* 代表所有方式

- 代表 both hard and soft

* - nofile
* - nproc

打开文件 /etc/pam.d/login 在文件最后加上 , 先检查系统,确保该文件存在

session required /lib64/security/pam_limits.so

2.关闭THP

在root下执行

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

把这段命令加入到 /etc/rc.local中 , 确保每次启动后都执行该命令

注意 : 如果redis处于启动状态 , 必须重启redis才能使该配置生效..所以最好在装redis之前就关闭

3.调整系统tcp参数

打开文件 /etc/sysctl.conf

#设置最大连接数
net.core.somaxconn = 32768
#内存分配策略 1表示内核允许分配所有的物理内存,而不管当前的内存状态如何
vm.overcommit_memory = 1

执行以下命令使配置生效

sysctl –p

三.防火墙配置(踩坑)

redis中,除了自身需要的端口之外(本文是7000和7001) , 如果需要建立集群 , 则还需要开放总线端口 , 总线端口是数据端口+10000

也就是 每台机器需要开放4个端口 , 分别为 7000 17000 7001 17001

附上一份iptable的配置脚本:

#!/bin/sh
iptables -P INPUT ACCEPT
iptables -F
iptables -X
iptables -Z
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 7000 -j ACCEPT
iptables -A INPUT -p tcp --dport 7001 -j ACCEPT
iptables -A INPUT -p tcp --dport 17000 -j ACCEPT
iptables -A INPUT -p tcp --dport 17001 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
service iptables save
systemctl restart iptables.service

四.下载并安装redis 5

#下载
curl -O http://download.redis.io/releases/redis-5.0.5.tar.gz
tar zxvf redis-5.0.5.tar.gz
cd redis-5.0.5
make

建立redis文件夹(文件夹随意 , 只是存放配置文件使用)

mkdir -p /home/redishome/redis_7000
mkdir -p /home/redishome/redis_7001

写redis配置文件 , 例子是7000端口的配置 , 可复制一份,更改端口变成7001的配置

[root@localhost redis_7000]# more redis.conf
#载入默认配置
include /home/redishome/redis/redis-5.0.5/redis.conf
#端口
port 7000
#启用集群模式
cluster-enabled yes
cluster-config-file nodes_7000.conf
#超时时间
cluster-node-timeout 5000
appendonly yes
#后台运行
daemonize yes
#非保护模式
protected-mode no
#文件存放路径
dir /home/redishome/redis_7000
#运行pid存放位置
pidfile /var/run/redis_7000.pid
#集群密码
masterauth FEEA50BC03C64BBFB6E22CAC521985E0
#访问密码
requirepass FEEA50BC03C64BBFB6E22CAC521985E0
#取消本机限制
bind 0.0.0.0
#禁用危险命令
rename-command FLUSHALL "ACA1B8FF9A8B2483C919C7943E74D674B"
rename-command FLUSHDB "A7B682D816AF048AF840E1E48F6B0484B"
rename-command KEYS "AEEB6C33C536646F2B8D9096BA58BD290"
rename-command CONFIG "A7A59439DB1A54C16AC8C143AD289CD2B"

三台服务器全部使用一样的配置(注意 , 密码也需要所有集群都一样)

安装好之后,每台服务器编制启动文件,redis-start.sh

#!/bin/sh
/home/redishome/redis/redis-5.0.5/src/redis-server /home/redishome/redis_7000/redis.conf &
/home/redishome/redis/redis-5.0.5/src/redis-server /home/redishome/redis_7001/redis.conf &

直接启动即可.

五 . 建立集群

redis-cli -a FEEA50BC03C64BBFB6E22CAC521985E0 --cluster create \
172.18.0.231:7000 172.18.0.231:7001 \
172.18.0.232:7000 172.18.0.232:7001 \
172.18.0.233:7000 172.18.0.233:7001 \
--cluster-replicas 1

其中 --cluster-replicas 1 代表建立的是1主1从的方式 (按照顺序配置) , 2代表1主2从

执行结果 :  (注意 , 中间提示确认时, 一定要打入yes全部,而不是y)

[root@localhost ~]# redis-cli -a FEEA50BC03C64BBFB6E22CAC521985E0 --cluster create 172.18.0.231:7000 172.18.0.231:7001 172.18.0.232:7000 172.18.0.232:7001 172.18.0.233:7000 172.18.0.233:7001 --cluster-replicas 1
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 172.18.0.232:7001 to 172.18.0.231:7000
Adding replica 172.18.0.233:7001 to 172.18.0.232:7000
Adding replica 172.18.0.231:7001 to 172.18.0.233:7000
M: f40abe2e5c79d06fbe803baa01b7f0501a8bcf3e 172.18.0.231:7000
slots:[0-5460] (5461 slots) master
S: 502b9e3a8f1ed01653d0f3f93946f9c3cea5b0cc 172.18.0.231:7001
replicates 9fa843537e5cdd34bb37f8117c51f86aa311b918
M: b73514294398fc8f45d2cb163499e2ef046cc6bb 172.18.0.232:7000
slots:[5461-10922] (5462 slots) master
S: 9542274db9dc6ee9f8b7ef91f9c3eb22351cbf88 172.18.0.232:7001
replicates f40abe2e5c79d06fbe803baa01b7f0501a8bcf3e
M: 9fa843537e5cdd34bb37f8117c51f86aa311b918 172.18.0.233:7000
slots:[10923-16383] (5461 slots) master
S: cc2d72c68ca90732232ecef03d66e65de25e62d0 172.18.0.233:7001
replicates b73514294398fc8f45d2cb163499e2ef046cc6bb
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.18.0.231:7000)
M: f40abe2e5c79d06fbe803baa01b7f0501a8bcf3e 172.18.0.231:7000
slots:[0-5460] (5461 slots) master
1 additional replica(s)
M: 9fa843537e5cdd34bb37f8117c51f86aa311b918 172.18.0.233:7000
slots:[10923-16383] (5461 slots) master
1 additional replica(s)
S: 502b9e3a8f1ed01653d0f3f93946f9c3cea5b0cc 172.18.0.231:7001
slots: (0 slots) slave
replicates 9fa843537e5cdd34bb37f8117c51f86aa311b918
S: cc2d72c68ca90732232ecef03d66e65de25e62d0 172.18.0.233:7001
slots: (0 slots) slave
replicates b73514294398fc8f45d2cb163499e2ef046cc6bb
M: b73514294398fc8f45d2cb163499e2ef046cc6bb 172.18.0.232:7000
slots:[5461-10922] (5462 slots) master
1 additional replica(s)
S: 9542274db9dc6ee9f8b7ef91f9c3eb22351cbf88 172.18.0.232:7001
slots: (0 slots) slave
replicates f40abe2e5c79d06fbe803baa01b7f0501a8bcf3e
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

集群建立就成功了.

六 . 其他命令

#批量kill掉所有redis进程
ps -ef|grep redis|grep -v grep|awk '{print "kill -9 " $2}' | sh
#查看集群状态
redis-cli -c -p 7000 -a FEEA50BC03C64BBFB6E22CAC521985E0
#查看节点明细情况
> cluster nodes
#查看集群情况
> cluster info

CentOS7安装配置redis-3.0.0的更多相关文章

  1. centos7安装配置redis

    1.下载redis > cd /usr/local/src #文件下载目录 > curl -O http://download.redis.io/releases/redis-3.2.8. ...

  2. centos7 yum安装配置redis 并设置密码

    原文:https://www.cnblogs.com/fanlinglong/p/6635828.html centos7 yum安装配置redis 并设置密码 1.设置Redis的仓库地址 yum ...

  3. Centos7安装配置gitlab

    Centos7安装配置gitlab 这篇文字我会介绍在Centos7上安装gitlab,配置gitlab的smtp,并且创建项目demo. sudo yum install openssh-serve ...

  4. Centos7安装配置Apache+PHP+Mysql+phpmyadmin

    转载自: Centos7安装配置Apache+PHP+Mysql+phpmyadmin 一.安装Apache yum install httpd 安装成功后,Apache操作命令: systemctl ...

  5. (转)Centos7安装配置NFS服务和挂载

    Centos7安装配置NFS服务和挂载 原文:https://www.u22e.com/601.html NFS简介 NFS(Network File System)即网络文件系统,是FreeBSD支 ...

  6. 【安装配置Redis】

    目录 安装 配置 Redis官网:https://redis.io Redis是完全开源免费的,遵守BSD协议. Redis是一个高性能的key-value数据库. @ *** Redis具有以下特点 ...

  7. CentOS7 安装配置笔记

    CentOS7 安装配置笔记 1.通过镜像安装 CentOS7 ==============================* 使用 UltraISO 9.7 或者 rufus-3.5p 制作ISO的 ...

  8. Centos7安装配置jenkins(Tomcat)

    Centos7安装配置jenkins(Tomcat) 一.准备工作 1.1 安装JDK1.8 具体安装过程不在赘述. 1.2 下载jenkins的war包 jenkins官网下载地址:https:// ...

  9. 如何在Ubuntu 16.04上安装配置Redis

    如何在Ubuntu 16.04上安装配置Redis Redis是一个内存中的键值存储,以其灵活性,性能和广泛的语言支持而闻名.在本指南中,我们将演示如何在Ubuntu 16.04服务器上安装和配置Re ...

  10. Centos7安装配置JDK8

    Centos7安装配置JDK8 一.准备工作 第一步,去甲骨文官网下载Jdk相应的版本,我这里下载的是jdk1.8. 第二步将你从官网上下载下来的jdk使用FTP工具上传到云服务器上的相应目录,我的是 ...

随机推荐

  1. c#静态构造函数

    作用是初始化一些类的静态成员 1.在实例化类的对象,或者引用任何的静态成员之前,.Net自动调用此构造函数,而且只调用一次 2.没有任何修饰符,也没有参数 3.一个类只能有一个静态构造函数 4.无参的 ...

  2. 疯狂java笔记(七) - Java集合之Map

    Map是以键值对(key-value)的形式来存储数据的.而且Map不允许key的重复,通过Map存储key-value对时,只需要考虑key的存储就可以,key存储后value就会跟着key(完全可 ...

  3. Robotium原理初探

    本文转载于:http://blog.csdn.net/jack_chen3/article/details/41927395 测试框架图: Android测试环境的核心是Instrumentation ...

  4. poj2386(简单dfs)

    就是求图中有多少个水洼.对图进行dfs遍历,并把是水洼的地方全部标记.然后从下一个是水哇的地方再进行dfs. #include <cstdio> #include <iostream ...

  5. ural 2068. Game of Nuts

    2068. Game of Nuts Time limit: 1.0 secondMemory limit: 64 MB The war for Westeros is still in proces ...

  6. ccc this 指针

    cc.Class({ extends: cc.Component, properties: { musicPlayer: { default: null, type: cc.AudioSource } ...

  7. BZOJ4112 : [Wf2015]Pipe Stream

    枚举答案,考虑将速度区间等长地划分成若干个小区间. 设$n_i$表示$i$次敲击能得到的区间数,$v_i$表示$i$次敲击之后答案落在$[v1,v_i]$之间,则$n_0=1,v_0=v2$. 因为对 ...

  8. flexbox布局的兼容性

    http://ayqy.net/blog/flexbox布局的兼容性/ 写在前面 flex布局早在2009年就有了,而现在是2015年6月8日,使用最新的flex语法会发现支持程度并不好,即使是在“高 ...

  9. Tomcat目录结构及Tomcat Server处理一个http请求的过程

    http://blog.sina.com.cn/s/blog_62cb15980101jh9x.html 1.Tomcat的结构概述     Tomcat服务器是由一系列可配置的组件构成,其核心组件是 ...

  10. Find和FirstOrDefault()有什么区别?

    Find方法和FirstOrDefault方法效果相同,都是返回满足条件的第一个元素,如果没有该元素,则返回null. 那么这两个扩展方法有什么不同? 1)Find方法是.netFramework2. ...