redis3.2.3 cluster配置

配置redis cluster,以两台机器,6个实例为环境。

操作系统 CentOS Linux release 7 64位

安装依赖包:单独下载redis-3.3.1.gem这个包要对应os版本

yum -y install tcl	 
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis	

解压安装:

cd /usr/local/
tar zxvf redis-3.2.3.tar.gz
cd redis-3.2.3
make && make install

在172.16.25.220的/usr/local/webapp下创建bin、redis6379、redis6380、redis6381四个目录

mkdir bin
mkdir redis6379
mkdir redis6380
mkdir redis6381

在172.16.25.72的/usr/local/webapp下创建bin、redis6379、redis6380、redis6381四个目录

mkdir bin
mkdir redis6379
mkdir redis6380
mkdir redis6381

分别在两台机器上创建配置文件,并启动:

cd /usr/local/redis-3.2.3/src/
cp mkreleasehdr.sh redis-benchmark redis-sentinel redis-server redis-trib.rb redis-cli /usr/local/webapp/bin
cd /usr/local/webapp/redis6379/
touch redis-6379.conf
cp /usr/local/webapp/redis6379/redis-6379.conf /usr/local/webapp/redis6380/redis-6380.conf
cp /usr/local/webapp/redis6379/redis-6379.conf /usr/local/webapp/redis6381/redis-6381.conf
sed -i ‘s/6379/6380/g‘ /usr/local/webapp/redis6380/redis-6380.conf
sed -i ‘s/6379/6381/g‘ /usr/local/webapp/redis6381/redis-6381.conf
/usr/local/webapp/bin/redis-server /usr/local/webapp/redis6379/redis-6379.conf
/usr/local/webapp/bin/redis-server /usr/local/webapp/redis6380/redis-6380.conf
/usr/local/webapp/bin/redis-server /usr/local/webapp/redis6381/redis-6381.conf

创建集群(在其中一台服务器上执行即可)

cd /usr/local/webapp/bin/
./redis-trib.rb create --replicas 1 172.16.25.220:6379 172.16.25.72:6379 172.16.25.220:6380 172.16.25.72:6380 172.16.25.220:6381 172.16.25.72:6381

集群状态查看:

./redis-cli -c -h 172.16.25.220 -p 6380
172.16.25.220:6380> cluster nodes
3b64702727c2e047f255ebb6eb111359990fba85 172.16.25.72:6379 master - 0 1478249255421 2 connected 5461-10922
a0ac9b45dd7bfabeb7036278c13efb744794adc8 172.16.25.72:6380 master - 0 1478249256423 7 connected 0-5460
f612b1d6e362c52ac606a627bcc27a95224ce2b3 172.16.25.220:6381 slave 3b64702727c2e047f255ebb6eb111359990fba85 0 1478249254919 5 connected
954200fe3b22806af5afc035cdf0a25899c14ecd 172.16.25.220:6380 myself,slave ca66b71a3e2b7bf75885720b4c7bd3015dd732a1 0 0 3 connected
ca66b71a3e2b7bf75885720b4c7bd3015dd732a1 172.16.25.72:6381 master - 0 1478249254419 8 connected 10923-16383
2b2b3a1885a9a2b64060b20322d3c425b64ca063 172.16.25.220:6379 slave a0ac9b45dd7bfabeb7036278c13efb744794adc8 0 1478249255921 7 connected

给redis cluster集群加上认证功能:

登陆集群后配置密码(我这里测试不生效)
./redis-cli -c -h 172.16.25.72 -p 6379
config set masterauth mypasswd
config set requirepass mypasswd
config rewrite

修改配置文件:加入下面两行
requirepass "mypasswd"
masterauth "mypasswd"

停redis
./redis-cli -c -h 172.16.25.220 -p 6379 shutdown
./redis-cli -c -h 172.16.25.220 -p 6380 shutdown
./redis-cli -c -h 172.16.25.220 -p 6381 shutdown
./redis-cli -c -h 172.16.25.72 -p 6381 shutdown   
./redis-cli -c -h 172.16.25.72 -p 6380 shutdown
./redis-cli -c -h 172.16.25.72 -p 6379 shutdown

修改
修改gem的redis工具下的一个文件,我这里是默认安装,路径如下:/usr/local/share/gems/gems/redis-3.3.1/lib/redis/client.rb
vim /usr/local/share/gems/gems/redis-3.3.1/lib/redis/client.rb

启动redis
service redis6379 start
service redis6380 start
service redis6381 start

登陆
./redis-cli -c -h 172.16.25.220 -p 6380
172.16.25.220:6380> cluster nodes
NOAUTH Authentication required.
172.16.25.220:6380> auth mypasswd
OK
172.16.25.220:6380> cluster nodes
3b64702727c2e047f255ebb6eb111359990fba85 172.16.25.72:6379 master - 0 1478249211338 2 connected 5461-10922
a0ac9b45dd7bfabeb7036278c13efb744794adc8 172.16.25.72:6380 master - 0 1478249211839 7 connected 0-5460
f612b1d6e362c52ac606a627bcc27a95224ce2b3 172.16.25.220:6381 slave 3b64702727c2e047f255ebb6eb111359990fba85 0 1478249210836 5 connected
954200fe3b22806af5afc035cdf0a25899c14ecd 172.16.25.220:6380 myself,slave ca66b71a3e2b7bf75885720b4c7bd3015dd732a1 0 0 3 connected
ca66b71a3e2b7bf75885720b4c7bd3015dd732a1 172.16.25.72:6381 master - 0 1478249212341 8 connected 10923-16383
2b2b3a1885a9a2b64060b20322d3c425b64ca063 172.16.25.220:6379 slave a0ac9b45dd7bfabeb7036278c13efb744794adc8 0 1478249210334 7 connected
172.16.25.220:6380> 

./redis-cli -c -h 172.16.25.220 -p 6380 -a mypasswd
172.16.25.220:6380> cluster nodes
3b64702727c2e047f255ebb6eb111359990fba85 172.16.25.72:6379 master - 0 1478249255421 2 connected 5461-10922
a0ac9b45dd7bfabeb7036278c13efb744794adc8 172.16.25.72:6380 master - 0 1478249256423 7 connected 0-5460
f612b1d6e362c52ac606a627bcc27a95224ce2b3 172.16.25.220:6381 slave 3b64702727c2e047f255ebb6eb111359990fba85 0 1478249254919 5 connected
954200fe3b22806af5afc035cdf0a25899c14ecd 172.16.25.220:6380 myself,slave ca66b71a3e2b7bf75885720b4c7bd3015dd732a1 0 0 3 connected
ca66b71a3e2b7bf75885720b4c7bd3015dd732a1 172.16.25.72:6381 master - 0 1478249254419 8 connected 10923-16383
2b2b3a1885a9a2b64060b20322d3c425b64ca063 172.16.25.220:6379 slave a0ac9b45dd7bfabeb7036278c13efb744794adc8 0 1478249255921 7 connected
172.16.25.220:6380> 

停止有密码认证的集群
./redis-cli -c -a "mypasswd" -h 172.16.25.220 -p 6379 shutdown

配置自启动:

如果配置成自启动,那相关的权限会变成root权限,请慎重考虑。下面给出自启动的脚本,仅供参考。

在/etc/init.d下编写脚本redis6379,并给+x权限,然后配置启动级别

chkconfig --add redis6379

chkconfig --level 345 redis6379 on

脚本如下:

cat /etc/init.d/redis6379 
#!/bin/bash
#chkconfig:345 61 61

PATH=/usr/local/bin:/sbin:/usr/bin:/bin  
     
REDISPORT=6379  
EXEC=/usr/local/bin/redis-server  
REDIS_CLI=/usr/local/bin/redis-cli  
     
PIDFILE=/usr/local/webapp/redis6379/redis_6379.pid 
CONF="/usr/local/webapp/redis6379/redis-6379.conf"  
     
case "$1" in  
    start)  
        if [ -f $PIDFILE ]  
        then  
                echo "$PIDFILE exists, process is already running or crashed"  
        else  
                echo "Starting Redis server..."  
                $EXEC $CONF  
        fi  
        if [ "$?"="0" ]   
        then  
              echo "Redis is running..."  
        fi  
        ;;  
    stop)  
        if [ ! -f $PIDFILE ]  
        then  
                echo "$PIDFILE does not exist, process is not running"  
        else  
                PID=$(cat $PIDFILE)  
                echo "Stopping ..."  
                $REDIS_CLI -p $REDISPORT SHUTDOWN  
                while [ -x ${PIDFILE} ]  
               do  
                    echo "Waiting for Redis to shutdown ..."  
                    sleep 1  
                done  
                echo "Redis stopped"  
        fi  
        ;;  
   restart|force-reload)  
        ${0} stop  
        ${0} start  
        ;;  
  *)  
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
        exit 1  
esac  
##############################

redis的配置文件如下:

bind 172.16.25.220
protected-mode yes
port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /usr/local/webapp/redis6379/redis_6379.pid
loglevel notice
logfile /usr/local/webapp/redis6379/redis_6379.log
databases 16
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/webapp/redis6379
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
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
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
requirepass "mypasswd"
masterauth "mypasswd"
时间: 2024-08-05 00:53:35

redis3.2.3 cluster配置的相关文章

Redis3.0 cluster 配置

Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案.完全去中心化,由多个节点组成,所有节点彼此互联.Redis 客户端可以直接连接任何一节点获取集群中的键值对,不需要中间代理,如果该节点不存在用户所指定的键值,其内部会自动把客户端重定向到键值所在的节点. Redis 集群是一个网状结构,每个节点都通过 TCP 连接跟其他每个节点连接.在一个有 N 个节点的集群中,每个节点都有 N-1 个流出的 TCP 连接,和 N-1 个流入的连接,这

linux下jboss eap 6.3 集群(cluster)配置

jboss eap 6.3 集群(cluster)配置 接上一篇继续,Domain模式解决了统一管理多台jboss的问题,今天我们来学习如何利用mod_cluster来实现负载均衡.容错. mod_cluster是jboss的一个开源集群模块(基于apache 2.2.x),官网地址为http://mod-cluster.jboss.org/ ,下面是使用步骤: 一.从官网下载binary文件 http://mod-cluster.jboss.org/downloads/1-2-6-Final-

redis单点、主从、集群cluster配置搭建与使用

目录 redis单点.主从.集群cluster配置搭建与使用 1 .redis 安装及配置 1.1 redis 单点 1.1.2 在命令窗口操作redis 1.1.3 使用jedis客户端操作redis 1.1.4 使用spring-redis操作 1.2 redis 主从 1.3 哨兵sentinel 1.3.2 哨兵sentinel配置 1.3.3 启动哨兵,使用jedis连接哨兵操作redis 1.3.4 编写程序&运行 1.3.5模拟主节点宕机情况 1.4 redis cluster 1

Redis3.2.4 Cluster集群搭建

一.redis cluster安装 1.下载和编译安装 cd /home/xm6f/dev wget http://download.redis.io/releases/redis-3.2.4.tar.gz tar -zxvf redis-3.2.4.tar.gz cd redis-3.2.4/ make && make install 2.创建redis节点选择2台服务器,分别为:192.168.1.105,192.168.1.160,每台服务器有3个节点,组成3个主节点,3个从节点的r

redis3.0.7 cluster 集群部署

一.环境描述 DB:redis 3.0.7 最新稳定版 OS:centos 6.6_x64 二.安装步骤 1.基本软件包安装 [[email protected] ~]# yum -y install ruby [[email protected] ~]# yum -y install rubygems 下载路径,上传到/tmp路径下 https://rubygems.org/gems/redis/versions/3.0.0 [[email protected] ~]# cd /tmp [[e

redis-4.0.14 cluster 配置实战

1.操作系统配置 切换到root用户修改配置sysctl.conf vim /etc/sysctl.conf # 添加配置: vm.max_map_count=655360 vm.overcommit_memory=1 net.core.somaxconn= 32767 fs.file-max=65535 # ulimit -n 最大文件描述符 65536 vim /etc/security/limits.conf # 添加 * soft nofile 65536 * hard nofile 6

XenMobile 10 Cluster配置

XenMobile Server 10当中,我们可以创建多台的XenMobile Server,并将其配置为集群模式. 通过部署多台服务器以创建一个高可用性配置集群.保证业务的高可用的同时,还保证XenMobile的负载连接请求. 我们在配置Cluster的时候,我们必须满足一下要求: 1.连接同一个数据库: 2.使用远程许可证服务器: 3.XenMobile服务器时间以及数据库时间必须要保持一致. 下面我们开始进行XenMobile 10 Cluster的配置: 在初始化配置过程中,开启Clu

Mysql Cluster配置笔记

一.Mysql Cluster拓扑环境 Management:ClusterManager  222.9.9.161 ndb1:Clusterndb1    222.9.9.162 ndb2:Clusterndb2    222.9.9.163 sql1:Clustersql1    222.9.9.164 sql1:Clustersql2    222.9.9.165 拓扑中的服务器均为HyperV虚拟机镜像拷贝,仅有Centos 6.4操作系统,需要做一些基本配置 1.配置网卡IP地址(可直

ProxySQL Cluster 配置详解 以及 高可用集群方案部署记录(完结篇)

早期的ProxySQL若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数据并不能共通,在主实例上配置后,仍需要在备用节点上进行配置,对管理来说非常不方便.但是ProxySQl 从1.4.2版本后,ProxySQL支持原生的Cluster集群搭建,实例之间可以互通一些配置数据,大大简化了管理与维护操作. ProxySQL是一个非中心化代理,在拓扑中,建议将它部署在靠近应用程序服务器的位置处.ProxySQL节点可以很方便地扩展到上百个节点,因为它支持runtime修改配