Redis集群搭建

Redis集群搭建

安装集群,默认我们已经能启动单个服务的redis了

配置

1. 配置文件

  • 修改port,dir,logfile,pidfile,每个节点都需要单独的端口号和路径以及文件

  • protected-mode,如果设为yes,则需要设置bind绑定端口,或者设置redis连接密码,我这里设置为no的

  • cluster-enabled,是否启用集群模式,当然为yes

  • 把配置文件放置在同一个目录下面,方便启动

port 20001
dir /var/lib/redis20001
logfile /var/log/redis/redis20001.log
pidfile /var/run/redis_20001.pid
protected-mode no
cluster-enabled yes

daemonize yes
tcp-backlog 511
timeout 0
tcp-keepalive 300
supervised no
loglevel notice
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
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 no
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

2. 创建路径

  • 创建第一步中每个节点设置的dir,(我不知道系统会不会自动创建,没有测试,我直接创建了的)

3. 启动各个节点

#redis-server 路径
redis-server etc/redis/redis20001.conf

4. 检查启动状态

#检查是否启动成功
ps -ef|grep redis
#查看redis端口号和状态
netstat -tnlp | grep redis
安装Ruby

  redis-trib.rb是官方提供的Redis Cluster的管理工具,无需额外下载,默认位于源码包的src目录下,但因该工具是用ruby开发的,所以需要准备相关的依赖环境

1. 安装curl

yum -y install curl

2. 安装rvm

1. gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3  
2. curl -L get.rvm.io | bash -s stable 
# 如果报错“没有公钥,No public key”,则执行第三步添加公钥,没有报错执行第四步添加用户组

3. 添加公钥

如果报下面这个信息,则需要安装公钥

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

4.添加用户组

安装完,界面会提示:Please do NOT forget to add your users to the rvm group.我使用的是root用户,所以添加的也是root用户,根据自己用户添加

usermod -aG rvm root

4. 修改rvm的ruby下载源RubyChina镜像

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

5.查看rvm库中可用的ruby版本

rvm list known

6.按照版本号安装ruby

根据版本号安装ruby,[ruby-]2.6[.3]说明2.6版本有从2.6.0到2.6.3四个版本

rvm install 2.6.3

7.设置使用ruby版本

rvm use 2.6.3

8.设置默认ruby版本

rvm use 2.6.3 --default

9.查看当前ruby版本

ruby --version
创建集群

  • 进入redis-trib.rb 所在目录执行命令(需替换ip地址为自己服务器地址,替换端口号为配置文件端口号)
./redis-trib.rb  create  --replicas  1 192.168.1.1:20001  192.168.1.1:20002 192.168.1.1:20003  192.168.1.1:20004  192.1.1.210:20005   192.168.1.1:20006
  • 询问Can I set the above configuration? 输入yes继续

  • 验证集群

    • 查看主从关系命令:redis-cli -h 192.168.1.1 -p 20001 info Replication

      • 端口20001的从服务是端口20006的redis服务

      • 端口20005的主服务是端口20003的redis服务

    • 连接redis命令:redis-cli -h 182.92.67.19 -c -p 20001

      • 连接上20001端口的redis服务,set了一个key"hello",value"yhw",然后可以直接get到这个key

      • 连接上20005端口的redis服务,get key "hello",能够拿到内容


原文地址:https://www.cnblogs.com/yanghanwen/p/12346246.html