一、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. 一个 OpenTiny,Vue2 Vue3 都支持!

    大家好,我是 Kagol,OpenTiny 开源社区运营,TinyVue 跨端.跨框架组件库核心贡献者,专注于前端组件库建设和开源社区运营. 今天给大家介绍如何同时在 Vue2 和 Vue3 项目中使 ...

  2. 如何优雅的申请一个属于自己的ChatGPT账号

    前言 GPT-4是一种语言模型,是基于GPT-3推出的下一代自然语言处理模型.与之前的GPT模型一样,GPT-4是一种基于深度学习技术的神经网络模型,可以自动地生成人类水平的文本.回答问题.完成翻译任 ...

  3. Go语言实现简单分布式系统

    使用Go语言实现比较简单的分布式系统,这个系统中采用多个分布式模型,即混合模型,并且基于HTTP进行通信,传输JSON数据 github链接: https://github.com/T4t4KAU/d ...

  4. 回车,换行,转义字符“\r”,“\n”是什么关系?

    1."回车"这个名词的来历. 关于"回车键"的来历,还得从机械英文打字机说起.在机械英文打字机上,有一个部件叫"字车",每打一个字符(原为单 ...

  5. lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】

    一.lua变量[ 全局变量和局部变量和表中的域] Lua 变量有三种类型:全局变量和局部变量和表中的域. 全局变量:默认情况下,Lua中所有的变量都是全局变量. 局部变量:使用local 显式声明在函 ...

  6. ES6之数组的Array.from()方法

    Array.from()方法就是构造函数本身的方法 将一个类数组对象或者可遍历对象转换成一个真正的数组. 那么什么是类数组对象呢?所谓类数组对象,最基本的要求就是具有length属性的对象. 1.将类 ...

  7. [双目视差] 立体校正源码分析(opencv)

    文章目录 [双目视差] 立体校正源码分析(opencv) 一.源码解析 二.源码中的方法 [双目视差] 立体校正源码分析(opencv) 一.源码解析 立体校正:把实际中非共面行对准的两幅图像,校正成 ...

  8. HTB靶场之-inject

    准备: 攻击机:虚拟机kali. 靶机:Inject,htb网站:https://www.hackthebox.com/,靶机地址:https://app.hackthebox.com/machine ...

  9. 2022-11-21:第N高的薪水。表结构和数据的sql语句如下。请问sql语句如何写? DROP TABLE IF EXISTS employee; CREATE TABLE employee (

    2022-11-21:第N高的薪水.表结构和数据的sql语句如下.请问sql语句如何写? DROP TABLE IF EXISTS employee; CREATE TABLE employee ( ...

  10. 2021-01-01:https加解密机制,你了解多少?

    福哥答案2021-01-01:这道题是我被大厂面试的题,但网上的答案太多了,故直接引用. HTTPS(全称:Hyper Text Transfer Protocol over Secure Socke ...