千家信息网

redis集群Cluster模式如何部署

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇文章将为大家详细讲解有关redis集群Cluster模式如何部署,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Redis 集群模式搭建redis集群部署分为
千家信息网最后更新 2024年11月19日redis集群Cluster模式如何部署

这篇文章将为大家详细讲解有关redis集群Cluster模式如何部署,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、Redis 集群模式搭建

redis集群部署分为三种:主从、哨兵(Sentinel)、集群(Cluster)。

前几天由于新应用上线,需要部署一套redis集群,现形成文档,将部署过程进行记录。

环境介绍

ip
软件包
系统版本
10.1.112.248redis-4.0.11.tar.gzCentOS Linux release 7.6.1810 (Core)
10.1.112.249redis-4.0.11.tar.gzCentOS Linux release 7.6.1810 (Core)

1、目录结构

[root@localhost local]# pwd/usr/local[root@localhost local]# tree redis-cluster/redis-cluster/├── redis-4.0.11-node1│   ├── data│   └── logs├── redis-4.0.11-node2│   ├── data│   └── logs└── redis-4.0.11-node3    ├── data    └── logs9 directories, 0 files

2、下载解压redis-4.0.11

mkdir /usr/local/softwarecd /usr/local/software && wget http://download.redis.io/releases/redis-4.0.11.tar.gztar xf redis-4.0.11.tar.gz

3、安装(两台服务器均安装)

[root@localhost software]# pwd/usr/local/software[root@localhost software]# tar xf redis-4.0.11.tar.gz[root@localhost software]# cd redis-4.0.1[root@localhost redis-4.0.11]# make install出现如下截图即可

4、准备配置文件

[root@localhost redis-4.0.11]# cp src/redis-trib.rb /usr/local/bin/[root@localhost redis-4.0.11]# cp redis.conf /usr/local/redis-cluster/redis-4.0.11-node1/[root@localhost redis-4.0.11]# cp redis.conf /usr/local/redis-cluster/redis-4.0.11-node2/[root@localhost redis-4.0.11]# cp redis.conf /usr/local/redis-cluster/redis-4.0.11-node3/[root@localhost redis-4.0.11]# cp src/{redis-cli,redis-server} /usr/local/redis-cluster/redis-4.0.11-node1/[root@localhost redis-4.0.11]# cp src/{redis-cli,redis-server} /usr/local/redis-cluster/redis-4.0.11-node2/[root@localhost redis-4.0.11]# cp src/{redis-cli,redis-server} /usr/local/redis-cluster/redis-4.0.11-node3/[root@localhost redis-4.0.11-node1]# grep -Ev "^#|^$" redis.conf bind 10.1.112.248            #领一台服务器配置为10.1.112.249protected-mode yesport 7000                    #其他节点分别配置为7001/7002tcp-backlog 511timeout 0tcp-keepalive 300daemonize yessupervised nopidfile /usr/local/redis-cluster/redis-4.0.11-node1/redis_7000.pid          #其他节点配置为redis-4.0.11-node2/redis_7001.pid、redis-4.0.11-node3/redis_7002.pidloglevel noticelogfile "/usr/local/redis-cluster/redis-4.0.11-node1/logs/redis_7000.log"   #同上databases 16always-show-logo yessave 900 1save 300 10save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir /usr/local/redis-cluster/redis-4.0.11-node1/data    #redis-4.0.11-node3/data、redis-4.0.11-node3/dataslave-serve-stale-data yesslave-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noslave-priority 100requirepass xxxlazyfree-lazy-eviction nolazyfree-lazy-expire nolazyfree-lazy-server-del noslave-lazy-flush noappendonly yesappendfilename "appendonly.aof"appendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yesaof-use-rdb-preamble nolua-time-limit 5000cluster-enabled yescluster-config-file nodes-7000.confcluster-node-timeout 15000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hz 10aof-rewrite-incremental-fsync yes

5、分别启动3个节点(另一台服务器同样启动)

cd /usr/local/redis-cluster/redis-4.0.11-node1./redis.server redis.confcd /usr/local/redis-cluster/redis-4.0.11-node2./redis.server redis.confcd /usr/local/redis-cluster/redis-4.0.11-node3./redis.server redis.conf查看进程[root@localhost redis-4.0.11-node1]# ps -ef |grep redisroot      6015  5673  0 17:52 pts/1    00:00:00 grep --color=auto redisweblogic 28246     1  0 Oct21 ?        00:01:14 ./redis-server 10.1.112.248:7000 [cluster]weblogic 28284     1  0 Oct21 ?        00:01:14 ./redis-server 10.1.112.248:7001 [cluster]weblogic 28301     1  0 Oct21 ?        00:02:25 ./redis-server 10.1.112.248:7002 [cluster][root@localhost redis-4.0.11-node1]# ps -ef |grep redisroot      6015  5673  0 17:52 pts/1    00:00:00 grep --color=auto redisweblogic 28246     1  0 Oct21 ?        00:01:14 ./redis-server 10.1.112.249:7000 [cluster]weblogic 28284     1  0 Oct21 ?        00:01:14 ./redis-server 10.1.112.249:7001 [cluster]weblogic 28301     1  0 Oct21 ?        00:02:25 ./redis-server 10.1.112.249:7002 [cluster]

6、使用 redis-trib.rb创建集群

[root@localhost redis-4.0.11-node1]# yum -y install ruby ruby-devel rubygems rpm-build[root@localhost redis-4.0.11-node1]# gem install redisFetching: redis-4.1.3.gem (100%)ERROR:  Error installing redis:        redis requires Ruby version >= 2.3.0.提示ruby版本过低。升级ruby版本[root@localhost redis-4.0.11-node1]# curl -L get.rvm.io | bash -s stable按提示导入秘钥,再次执行"curl -L get.rvm.io | bash -s stable"[root@localhost redis-4.0.11-node1]# source /usr/local/rvm/scripts/rvm查看可用的ruby版本并安装[root@localhost redis-4.0.11-node1]# rvm list known[root@localhost redis-4.0.11-node1]# rvm install 2.3.0   #这一步用时较长,耐心等待安装完成。

7、安装gem redis接口

rvm use 2.3.0ruby --versiongem install redis

8、安装rubygems

yum install -y rubygems

至此,Ruby和运行redis-trib.rb需要的环境安装完成了,接下来使用redis-trib.rb创建集群

9、创建集群

redis-trib.rb create --replicas 1 10.1.112.248:7000 10.1.112.248:7001 10.1.112.248:7002 10.1.112.249:7000 10.1.112.249:7001 10.1.112.249:7002

10、查看集群状态

[weblogic@geb-redis1 ~]$ redis-trib.rb check 10.1.112.248:7000>>> Performing Cluster Check (using node 10.1.112.248:7000)M: 61d94b047e12679886991c7c6d225b471374a018 10.1.112.248:7000   slots:0-5460 (5461 slots) master   1 additional replica(s)S: a582b9d7784d2f1b2e6a20d5352a19062dc29d4a 10.1.112.248:7002   slots: (0 slots) slave   replicates 0addc56bce940a659aa2ac4aa6d51677c1f2c523M: 0addc56bce940a659aa2ac4aa6d51677c1f2c523 10.1.112.249:7000   slots:5461-10922 (5462 slots) master   1 additional replica(s)S: 087de17dafa03c361d87f7a4c4a5b2d7ce0555fc 10.1.112.249:7001   slots: (0 slots) slave   replicates fd9f572038a7504e088dde150b89beb2bac39e3cM: fd9f572038a7504e088dde150b89beb2bac39e3c 10.1.112.248:7001   slots:10923-16383 (5461 slots) master   1 additional replica(s)S: 407d6ea2eb3725e142d2e5ae4e1eef4eee1a48ca 10.1.112.249:7002   slots: (0 slots) slave   replicates 61d94b047e12679886991c7c6d225b471374a018[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.

11、整体目录结构

[root@geb-redis1 redis-cluster]# tree.├── redis-4.0.11-node1│   ├── data│   │   ├── appendonly.aof│   │   └── nodes-7000.conf│   ├── logs│   │   └── redis_7000.log│   ├── redis_7000.pid│   ├── redis-cli│   ├── redis.conf│   └── redis-server├── redis-4.0.11-node2│   ├── data│   │   ├── appendonly.aof│   │   └── nodes-7001.conf│   ├── logs│   │   └── redis_7001.log│   ├── redis_7001.pid│   ├── redis-cli│   ├── redis.conf│   └── redis-server└── redis-4.0.11-node3    ├── data    │   ├── appendonly.aof    │   └── nodes-7002.conf    ├── logs    │   └── redis_7002.log    ├── redis_7002.pid    ├── redis-cli    ├── redis.conf    └── redis-server9 directories, 21 files[root@geb-redis2 redis-cluster]# tree.├── redis-4.0.11-node1│   ├── data│   │   ├── appendonly.aof│   │   └── nodes-7000.conf│   ├── logs│   │   └── redis_7000.log│   ├── redis_7000.pid│   ├── redis-cli│   ├── redis.conf│   └── redis-server├── redis-4.0.11-node2│   ├── data│   │   ├── appendonly.aof│   │   └── nodes-7001.conf│   ├── logs│   │   └── redis_7001.log│   ├── redis_7001.pid│   ├── redis-cli│   ├── redis.conf│   └── redis-server└── redis-4.0.11-node3    ├── data    │   ├── appendonly.aof    │   └── nodes-7002.conf    ├── logs    │   └── redis_7002.log    ├── redis_7002.pid    ├── redis-cli    ├── redis.conf    └── redis-server9 directories, 21 files

12、部署过程中需要调整的系统参数

# echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf# echo "net.core.somaxconn = 2048" >> /etc/sysctl.conf# cat /etc/rc.localif test -f /sys/kernel/mm/transparent_hugepage/enabled; then   echo never > /sys/kernel/mm/transparent_hugepage/enabledfiif test -f /sys/kernel/mm/transparent_hugepage/defrag; then   echo never > /sys/kernel/mm/transparent_hugepage/defragfi

关于"redis集群Cluster模式如何部署"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0