一.服务器准备

本文准备了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. LightOJ1283 Shelving Books(DP)

    题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1283 Description You are a librarian ...

  2. 04_Swift2基础之类型安全和类型推测+字面量+类型别名

    1. 类型安全和类型推测 1> 类型安全 Swift 是一个 _类型安全(type safe)_ 的语言.类型安全的语言可以让你清楚地知道代码要处理的值的类型.如果你的代码需要一个`String ...

  3. POJ 2480 (约数+欧拉函数)

    题目链接: http://poj.org/problem?id=2480 题目大意:求Σgcd(i,n). 解题思路: 如果i与n互质,gcd(i,n)=1,且总和=欧拉函数phi(n). 如果i与n ...

  4. ACM: SGU 101 Domino- 欧拉回路-并查集

    sgu 101 - Domino Time Limit:250MS     Memory Limit:4096KB     64bit IO Format:%I64d & %I64u Desc ...

  5. 为什么我们要使用min-height和max-height样式属性?

    Css min-height应用地方解释我们有时设置一个对象盒子时候避免对象没有内容时候不能撑开,但内容多少不能确定所以又不能固定高度,这个时候我们就会需要css来设置min-height最小高度撑高 ...

  6. js 性能基准测试工具-告别可能、也许、大概这样更快更省

    平时写js经常遇到这样做是不是更快点?但又没有具体简单可测试的工具,最近也倒序看博客园司徒正美 js分类下的文章 [ps:去年灵光一闪,发现看博客园排名前100的博客.按照文章分类倒序看是学习最快的方 ...

  7. 【BZOJ】2595: [Wc2008]游览计划

    题意 \(n * m\)的网格,如果\(a_{i, j} = 0\)则表示景点,否则表示这里的需要的志愿者人数.求一种安排志愿者的方案使得所有景点连通且志愿者最少. 分析 本题可以插头dp,然而有一个 ...

  8. gui学习

    GUI 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面 有名的实现 : ucgui   . 实现围绕几个问题: ...

  9. golang gc 问题(转的)

    在实际使用go语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究.本文对研究的结果进行一下总结. 什么是垃圾回收? 曾几何时,内存管理是程序员开发应用的一大难 ...

  10. 通过串口设备vid,pid自动获得该设备所对应的串口号

    用C#做串口通讯很方便,因为dotfx2.0已经集成了Serial Port控件,此控件使用上比MSComm控件更简单,当然它也有一个小bug (RecievedBytesThreshold设置有时候 ...