redis cluster 为了保证数据的高可用性,加入了主从模式,一个主节点对应一个或多个从节点,主节点提供数据存取,从节点则是从主节点拉取数据备份,当这个主节点挂掉后,就会有这个从节点选取一个来充当主节点,从而保证集群不会挂掉。
(1)安装redis(路径仅供参考)
下载解压包并解压到/usr/local/src/目录
tar zxvf /srv/ftp/redis.3.2.9 /usr/local/src/编译安装
make && make install笔者为了方便,将启动项和配置文件导入/usr/local/redis/
mkdir -p /usr/local/redis/{conf,src}创建数据存放目录
mkdir -p /usr/data/redis/{redis-6379,redis-6380,redis-6381,redis-6382,redis-6383,redis-6384,redis-6385,redis-6386}/{logs,dbcache,run}/(2)配置src 将编译好的安装包中的下面三项移入 /usr/local/redis/src/
名称作用redis-benchmark性能测试redis-cliredis客户端启动redis-serverredis服务启动(3)配置conf,笔者采用了8个redis搭载集群,所以要配置8个配置文件
文件内容参考 reids-6379.conf
pidfile "/usr/data/redis/redis-6379/run/redis_6379.pid" save 900 1 save 300 10 save 60 10000 slave-serve-stale-data yes slave-read-only yes replication slaves repl-diskless-sync no socket server repl-diskless-sync-delay 5 change repl-disable-tcp-nodelay no slave-priority 100 appendfilename "appendonly.aof" auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes lua-time-limit 5000 cluster-enabled yes cluster-node-timeout 15000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" directives. 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-value 64 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 aof-rewrite-incremental-fsync yes masterauth "123" requirepass "123"配置redis-cluster的配置文件的注意事项 1.切记不要配密码(requirespass 123) 2.打开cluster支持(cluster-enable yes) 3.配置挂掉时间(cluster-node-timeout 15000) 4.没有主从关系(#slave of) 5.切记protected mode no,必须为no,因为保护一开redis-cluster无法从外部进行配置
(1)部署前,先确保安装有ruby编译环境
apt-get install ruby ruby-dev rubygems(2)首先需要进行redis编译处理
gem install redis(3)复制redis-trib.rb到redis的主目录内
cp /usr/local/src/redis-3.2.9/src/redis-trib.rb /usr/local/redis/src(4)启动redis服务
/usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6379.conf /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6380.conf /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6381.conf /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6382.conf /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6383.conf /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6384.conf /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6385.conf /usr/local/redis/src/redis-server /usr/local/redis/conf/redis-6386.conf(5)启动redis-cluster集群
/usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.74.148:6379 192.168.74.148:6380 192.168.74.148:6381 192.168.74.148:6382 192.168.74.148:6383 192.168.74.148:6384 192.168.74.148:6385 192.168.74.148:6386(6)启动成功 启动成功后会出现如下提示信息 主从分配是redis-cluster自动分配,M代表主服务器,S代表从服务器
输入yes代表同意集群自动分配的主从关系
(1)启动任何一个节点,因为在redis-cluster集群当中,任何一个节点都是平等的关系,所以启动任何一个都代表进入了集群
/usr/local/redis/src/redis-cli -h 192.168.74.148 -p 6379 -a 123 -c(2)存入数据进行测试
set hello sjw会出现提示信息,把当前数据存放在6381端口的服务器中,并跳转到6381
在此提醒切记配置好redis-cluster后不可单独操作某一节点否则会产生如下错误 则需要进入每一个节点进行
cluster reset此时代表配置成功!!!