redis cluster集群搭建

1、环境说明

系统版本:CentOS Linux release 7.2.1511 (Core)
Redis 版本:3.2.5
Ruby 版本:2.4.4
数据目录:/data/redis/{6379,6380,6381}/
安装位置:/data/software/
日志目录:/data/logs/redis/{6379,6380,6381}/
端口:1.247: 6379 6380 6381 :1.248: 6379 6380 6381

2、创建 redis 数据目录,日志目录
mkdir -p /data/redis/{6379,6380,6381}
mkdir -p /data/logs/redis/{6379,6380,6381}
3、安装 ruby 及 redis 模块
3.1 安装 rvm:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
source /usr/local/rvm/bin/ruby-rvm-env
source /etc/profile.d/rvm.sh 

备注:第一步如因网络问题导致失败,可多尝试几次
参考:http://rvm.io/

3.2 安装ruby

查看 rvm 库中已知的 ruby 版本,安装一个较新 ruby 版本:

rvm list known
rvm install 2.4

3.3安装 redis 模块:

gem install redis
4. 安装Redis
4.1 下载redis
cd /data/software/
wget http://download.redis.io/releases/redis-3.2.5.tar.gz
4.2 解压安装redis
tar xf redis-3.2.5.tar.gz
cd redis-3.2.5
make && make install
cd utils/
+./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server
.......
Starting Redis server...
Installation successful!

备注:执行install_server.sh脚本后,一路回车即可,或者根据需要修改相关配置,脚本执行完毕后会自动启动实例,此时先停止实例,继续修改配置文件。
关闭redisl

/etc/init.d/redis_6379 stop
5.修改配置文件,并启动多实例
5.1 修改redis-cluster配置参数
bind 192.168.1.247
appendonly  yes
cluster-enabled yes
cluster-config-file /data/tools/redis/conf/6379-node.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10 master
cluster-migration-barrier 1
cluster-require-full-coverage no
5.2 创建多实例

修改配置文件和启动文件中的端口即可。其他配置一样,注意数据目录和配置目录要创建好
以下为2启动程序和配置文件的示例,修改端口即可。
6379启动程序

#!/bin/sh
#Configurations injected by install_server below....EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/data/tools/redis/conf/6379/6379.conf"
REDISPORT="6379"
###############
# SysV Init Information
# chkconfig: - 58 74
# description: redis_6379 is the redis daemon.
### BEGIN INIT INFO
# Provides: redis_6379
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop redis_6379
# Description: Redis daemon
### END INIT INFOcase "$1" instart)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed"elseecho "Starting Redis server..."$EXEC $CONFfi;;stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE does not exist, process is not running"elsePID=$(cat $PIDFILE)echo "Stopping ..."$CLIEXEC -p $REDISPORT shutdownwhile [ -x /proc/${PID} ]doecho "Waiting for Redis to shutdown ..."sleep 1doneecho "Redis stopped"fi;;status)PID=$(cat $PIDFILE)if [ ! -x /proc/${PID} ]thenecho 'Redis is not running'elseecho "Redis is running ($PID)"fi;;restart)$0 stop$0 start;;*)echo "Please use start, stop, restart or status as first argument";;
esac

6379配置文件

bind 192.168.1.248
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis.pid
loglevel notice
logfile "/data/logs/redis/6379/redis.log"
databases 16
save ""
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data/redis/6379
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
maxmemory 4gb
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
lua-time-limit 5000
cluster-enabled yes
cluster-config-file /data/tools/redis/conf/6379/6379-node.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
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
5.3 启动redis,2台机器分别执行
/etc/init.d/redis_6379 start
/etc/init.d/redis_6380 start
/etc/init.d/redis_6381 start
6、启动redis-cluster
6.1 初始化redis-cluster
redis-trib.rb create --replicas 1 192.168.1.247:6379 192.168.1.247:6380 192.168.1.247:6381 192.168.1.248:6379 192.168.1.248:6380 192.168.1.248:6381
6.2 基本测试,命令行进入cluster 需要 加上-c参数,由于bind了IP,因此此处要-h 指定ip
redis-cli -c -h 192.168.1.247
192.168.1.247:6379> 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:6
cluster_my_epoch:1
cluster_stats_messages_sent:57818
cluster_stats_messages_received:57818
192.168.1.247:6379> 

从上可以看出,节点状态是ok,有6个节点。此命令也可用于监控redis-cluster的集群状态。
监控脚本

redis-cli -c -h 192.168.1.247 cluster info|grep 'cluster_state:ok'|wc -l

转载于:https://www.cnblogs.com/cangyuefeng/p/10339106.html

redis-cluster集群搭建相关推荐

  1. Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)

    前提:先安装好Redis,参考:http://www.cnblogs.com/EasonJim/p/7599941.html 说明:Redis Cluster集群模式可以做到动态增加节点和下线节点,使 ...

  2. Ubuntu 16.04 下Redis Cluster集群搭建

    实际操作如下: 准备工作 版本:4.0.2 下载地址:https://redis.io/download 离线版本:(链接: https://pan.baidu.com/s/1bpwDtOr 密码: ...

  3. centos7 docker-compose安装_Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  4. Redis Cluster 集群详解

    Redis 分布式扩展之 Redis Cluster 方案 主从切换的过程中会丢失数据,因为只有一个 master,只能单点写,没有解决水平扩容的问题.而且每个节点都保存了所有数据,一个是内存的占用率 ...

  5. python连接redis集群如何释放内存_python 连接 redis cluster 集群

    一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...

  6. Redis Cluster集群的搭建与实践[转]

    Redis Cluster集群的搭建与实践 Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后 ...

  7. Redis Cluster集群的搭建与实践

    Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后版本支持redis-cluster集群,Re ...

  8. redis映射的概念_搭建分布式Redis Cluster集群与Redis入门

    目录 Redis 集群搭建Redis 是啥集群(Cluster)Redis Cluster 说明Redis Cluster 节点Redis Cluster 集群模式不能保证一致性创建和使用 Redis ...

  9. Docker搭建3主3从Redis Cluster集群

    本文使用镜像由慕课网的神思者老师提供 本文使用镜像是已经配置好了的Redis镜像, 如果需要自定义可修改配置文件或用官方Redis镜像进行部署 1. 拉取配置好的Redis镜像 docker pull ...

  10. redis集群扩容和缩容_深入理解Redis Cluster集群

    一.背景 前面的文章<深入理解Redis哨兵机制>一文中介绍了Redis哨兵集群的工作原理,哨兵集群虽然满足了高可用的特性,但是依然存在这样的问题:即数据只能往一个主节点上进行写入. 只能 ...

最新文章

  1. 编写更少量的代码:使用apache commons工具类库
  2. tomcat无法启动(JVM错误)
  3. Linux下常用文本处理命令
  4. Linux系统初学者指南,观点|Linux 系统调用的初学者指南
  5. 魅族魅蓝5s详细开启Usb调试模式的流程
  6. IntelliJ IDEA安装AngularJS插件
  7. 单一世界十万在线webgame的设计思路(五)-- 整体架构和总结
  8. java ssh 框架下 利用junit4 spring-test进行单元测试
  9. vi/vim编辑器使用方法详解
  10. 进程间通信方式 超详细解析全站最全
  11. 转【测试基础】测试计划如何编写
  12. 中台战略:企业数字化转型利器
  13. 银行卡号码显示每隔4位数空一格
  14. AMIRA时间预测实现过程详解(含代码可直接套用)
  15. RSF 分布式服务框架设计:线程模型
  16. linux:framebuffer驱动之ssd1363驱动和fbtft驱动修改
  17. 割完肉先疗伤(转自:沙牛家书)
  18. 电脑主机由哪几个重要的组成部分
  19. JAVA程序设计:分数加减运算(LeetCode:592)
  20. oracle重新创建表空间,oracle 创建表空间,修改表空间,删除表空间

热门文章

  1. 蓝桥杯练习系统 —— 题解目录
  2. 1031:反向输出一个三位数
  3. 【Tools】Centos7.5安装MySQL5.7
  4. 【Linux系统编程】Linux 信号列表
  5. 文字转wav_这6款超良心语音转文字工具,真让人省心!
  6. 即将放弃python的app_即将放弃Python 2.7的不止有Numpy,还有pandas和这些工具
  7. NC反弹的小demo
  8. 【算法】单源最短路径和任意两点最短路径总结(补增:SPFA)
  9. C++学习笔记-----永远不要在派生类中改变虚函数的默认参数值
  10. 记录kubesphere的安装与使用