一、Redis集群介绍

Redis 集群是一个提供在多个Redis节点间共享数据的程序集。Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误。Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令。

  • Redis 集群的优势:

    • 自动分割数据到不同的节点上;
    • 整个集群的部分节点失败或者不可达的情况下能够继续处理命令。
二、Redis Cluster集群部署

  • 环境
主机名 IP 端口
node1 192.168.2.51 7000,7001
node2 192.168.2.52 7000,7001
node3 192.168.2.53 7000,7001
# TCP监听队列大小
echo "net.core.somaxconn = 32767" >> /etc/sysctl.conf
sysctl -p
# OMM相关:vm.overcommit_memory
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p
# 开启内核特性
echo never > /sys/kernel/mm/transparent_hugepage/enabled
  • 安装redis

    • 分别在每台服务器上安装两个节点;
    • 下载
    wget http://download.redis.io/releases/redis-5.0.5.tar.gz
    • 解压编译安装
    yum install gcc c++ -y
    tar -xf redis-5.0.5.tar.gz
    cd redis-5.0.5
    make
    make MALLOC=libc
    make install PREFIX=/usr/local/redis-cluster
    mkdir -p /usr/local/redis-cluster/{7000,7001}
  • 配置修改
cat redis.conf  |grep -v ^# |grep -v ^$
cp redis.conf /usr/local/redis-cluster/7000/
cd /usr/local/redis-cluster/7000/
mv redis.conf 7000_redis.conf
vim 7000_redis.conf
bind 0.0.0.0
protected-mode yes
port 7000
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile "/usr/local/redis-cluster/7000/redis_7000.pid"
loglevel notice
logfile "/usr/local/redis-cluster/7000/redis_7000.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/usr/local/redis-cluster/7000"
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
cluster-enabled yes
cluster-config-file "/usr/local/redis-cluster/7000/nodes.conf"
cluster-node-timeout 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
  • 复制配置文件
# 复制配置文件到另外两台服务器相同目录下
scp 7000/7000_redis.conf root@192.168.2.52:/usr/local/redis-cluster/7000/
scp 7001/7001_redis.conf root@192.168.2.52:/usr/local/redis-cluster/7001/
scp 7000/7000_redis.conf root@192.168.2.53:/usr/local/redis-cluster/7000/
scp 7001/7001_redis.conf root@192.168.2.53:/usr/local/redis-cluster/7001/
  • 配置启动脚本
cat start_redis.sh
#!/bin/bash
REDIS_HOME=/usr/local/redis-cluster
$REDIS_HOME/bin/redis-server $REDIS_HOME/7000/7000_redis.conf
$REDIS_HOME/bin/redis-server $REDIS_HOME/7001/7001_redis.conf
chmod +x start_redis.sh
./start_redis.sh
  • 集群配置
./redis-cli --cluster create 192.168.2.51:7000 192.168.2.51:7001 192.168.2.52:7000 192.168.2.52:7001 192.168.2.53:7000 192.168.2.53:7001 --cluster-replicas 1
  • 配置密码验证
 # 分别在每个节点执行
redis-cli -h 192.168.2.51 -p 7000 -c
config set masterauth 123456
config set requirepass 123456
auth 123456
config rewrite
tail -2 7000/7000_redis.conf
masterauth "123456"
requirepass "123456"
  • redis-cli相关命令
# 查看集群状态
redis-cli -h 192.168.2.51 -p 7000 -c
192.168.2.51:7000> auth 123456
OK
192.168.2.51:7000> CLUSTER INFO
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:8
cluster_my_epoch:7
cluster_stats_messages_ping_sent:971263
cluster_stats_messages_pong_sent:975267
cluster_stats_messages_sent:1946530
cluster_stats_messages_ping_received:975267
cluster_stats_messages_pong_received:971262
cluster_stats_messages_received:1946529 # 查看节点信息
CLUSTER NODES
a3c152931ac1b68f61ad9a61b6e1771a12d46d08 192.168.2.51:7000@17000 myself,slave f869ba21aaf34dee11ec62fe61b58b224fbbfbd3 0 1564559165000 1 connected
5ea17476f641c656e3ee48ae4985181de195db88 192.168.2.53:7000@17000 slave 521da8dd67d8cd27f3f2546636652ae23b396abb 0 1564559164526 8 connected
e5235f0764ce1be056208d683cc69adf6c3398b1 192.168.2.53:7001@17001 slave 6ca305fb349e3281b532d431bbabb79a9bb9838f 0 1564559165526 6 connected
f869ba21aaf34dee11ec62fe61b58b224fbbfbd3 192.168.2.52:7001@17001 master - 0 1564559164025 7 connected 0-5460
6ca305fb349e3281b532d431bbabb79a9bb9838f 192.168.2.52:7000@17000 master - 0 1564559166027 3 connected 5461-10922
521da8dd67d8cd27f3f2546636652ae23b396abb 192.168.2.51:7001@17001 master - 0 1564559165025 8 connected 10923-16383

Linux下Redis集群部署的更多相关文章

  1. Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)

    一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...

  2. Linux 下redis 集群搭建练习

    Redis集群 学习参考:https://blog.csdn.net/jeffleo/article/details/54848428https://my.oschina.net/iyinghui/b ...

  3. Linux下Redis集群环境的搭建

    一.安装redis(使用redis3.0版本) 1.需要gcc环境,如果没有执行命令安装gcc yum install gcc-c++ 2.下载redis3.0的源码包并上传至服务器 3.解压源码包 ...

  4. 【redis】 linux 下redis 集群环境搭建

    Redis集群 (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:63791 ...

  5. linux下redis 集群配置

    redis.conf 配置文件说明 daemonize no --是否把redis-server启动在后台,默认是“否”.若改成yes pidfile /var/run/redis.pid --当Re ...

  6. linux环境(CentOS-6.7)下redis集群的搭建全过程

    linux环境下redis集群的搭建全过程: 使用mount命令将光盘挂载到/mnt/cdrom目录下: [root@hadoop03 ~]# mount -t iso9660 -o ro /dev/ ...

  7. (转)linux下weblogic12c集群的安装部署

    本文介绍linux下weblogic12c集群的安装部署,版本12c,其他版本操作会有所不同,但其大体操作基本都是一样的 关于weblogic的集群,在此就不多做介绍了,如果有不了解的朋友可以百度搜索 ...

  8. CentOS下redis集群安装

    环境: 一台CentOS虚拟机上部署六个节点,创建3个master,3个slave节点 1.下载并解压 cd /root wget http://download.redis.io/releases/ ...

  9. Redis集群部署3.0

    我用的Mac的终端 ------------------------- 1.Redis简介 centos(5.4)  Redis是一个key-value存储系统.和Memcached类似,但是解决了断 ...

  10. Elasticsearch学习总结 (Centos7下Elasticsearch集群部署记录)

    一.  ElasticSearch简单介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticse ...

随机推荐

  1. Linux文件系统故障,Input/output error

    事情是这样的,在启动某一个应用程序的时候,出现 Input/output error 的报错,磁盘以及目录无法使用的情况下,进行了重启,重启完成后是可以正常使用的,过一段时间后就会再次出现这个问题,一 ...

  2. day115:MoFang:种植园我的背包&种植园道具购买

    目录 1.我的背包 2.道具购买 1.我的背包 1.在种植园点击背包按钮打开我的背包 在种植园打开背包,orchard.html,代码: <!DOCTYPE html> <html& ...

  3. devops|中小公司不要做研发效能度量

    我特别反感那些不顾公司现状一上来就想要做研发效能度量的人,尤其是想把研发效能度量当成锤子四处去敲打螺丝钉的人. 没几个人的小公司上来就做研发效能度量,就如同普通人一上来直接问媒婆怎么能娶到迪丽热巴.解 ...

  4. 用C++编写一个简单的发布者和订阅者

    摘要:节点(Node)是通过 ROS 图进行通信的可执行进程. 本文分享自华为云社区<编写一个简单的发布者和订阅者>,作者: MAVER1CK . @[toc] 参考官方文档:Writin ...

  5. [OpenCV-Python] 17 形态学转换

    文章目录 OpenCV-Python:IV OpenCV中的图像处理 17 形态学转换 17.1 腐蚀 17.2 膨胀 17.3 开运算 17.4 闭运算 17.5 形态学梯度 17.6 礼帽 17. ...

  6. python 编程规范有哪些?

    Python 编程规范主要包括代码布局.命名规范.注释规范.函数编写规范等多个方面,下面给出一些常见的编程规范及其示例代码. 1. 代码布局规范 代码布局规范主要是指代码的缩进.行宽.空行.换行等方面 ...

  7. STL大全

    排序最速传说--sort 我们都学过一些排序的写法,比如冒泡排序,快速排序之类的东西,举个例子来说吧,这是快速排序的代码: #include<iostream> using namespa ...

  8. PostgreSQL-HA 高可用集群在 Rainbond 上的部署方案

    PostgreSQL 是一种流行的开源关系型数据库管理系统.它提供了标准的SQL语言接口用于操作数据库. repmgr 是一个用于 PostgreSQL 数据库复制管理的开源工具.它提供了自动化的复制 ...

  9. 解决pod健康检查问题

    解决pod健康检查问题 引自:Solving the mystery of pods health checks failures in Kubernetes.原文中的某些描述并不清晰,本文作了调整. ...

  10. 2020-08-22:I/O多路复用中select/poll/epoll的区别?

    福哥答案2020-08-22: select,poll,epoll 都是 操作系统实现 IO 多路复用的机制. 我们知道,I/O 多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是 ...