Mac 环境下 Redis 集群的搭建

1 篇文章 0 订阅

Mac 环境下 Redis 集群的搭建

安装 Redis

Mac 环境下安装 Redis 是非常简单的,直接执行命令:brew install redis 就可以了(需要安装 homebrew),这也是我比较推荐的方式。通过 homebrew 安装 Redis 之后,Redis 的环境变量、卸载、更新都可以通过简单的命令来完成,也就是说你不再需要考虑管理 Redis 的问题了。

安装完成之后,就可以直接在终端执行命令:

  • redis-server:启动 redis 服务器,默认端口 6379
  • redis-cli:启动 redis 客户端

配置 Redis 集群环境

说明:通过 homebrew 安装完成之后,redis 的默认配置文件(redis.conf)的路径位于:/usr/local/etc,环境配置的操作也基本在这个路径下完成。

创建虚拟节点目录、修改配置文件

说明:各个步骤的详细说明可以参考文档:Redis 集群
这个操作包含了两个步骤:创建 Redis 虚拟节点的目录,并修改虚拟节点的配置文件,下面详细说明。

  • 创建 Redis 虚拟节点目录

在 /usr/local/etc 下创建 cluster 目录,并在 cluster 目录下创建目录:7000、7001、7002、7003、7004、7005。需要执行的命令:

# 需要在 /usr/local/etc 路径下
mkdir -p redis/cluster/7000
mkdir -p redis/cluster/7001
mkdir -p redis/cluster/7002
mkdir -p redis/cluster/7003
mkdir -p redis/cluster/7004
mkdir -p redis/cluster/7005
  • 修改配置文件

拷贝 Redis 默认的配置文件(/usr/local/etc/redis.conf)到 7000、7001、7002、7003、7004、7005 这6个目录中。修改每一个目录下的配置文件,这里以 7000 为例:

# cp redis.conf redis/cluster/7000/7000.conf
port 7000                                     # Redis 节点的端口号
cluster-enabled yes                           # 实例以集群模式运行
cluster-config-file nodes-7000.conf           # 节点配置文件路径
cluster-node-timeout 5000                     # 节点间通信的超时时间
appendonly yes                                # 数据持久化

启动 Redis,并验证各个节点的状态

在任意目录执行下面的6个命令,即启动6个 Redis 节点:

redis-server /usr/local/etc/redis/cluster/7000/7000.conf &
redis-server /usr/local/etc/redis/cluster/7001/7001.conf &
redis-server /usr/local/etc/redis/cluster/7002/7002.conf &
redis-server /usr/local/etc/redis/cluster/7003/7003.conf &
redis-server /usr/local/etc/redis/cluster/7004/7004.conf &
redis-server /usr/local/etc/redis/cluster/7005/7005.conf &

通过命令启动之后,查看当前系统是否存在对应的进程。如果能看到如下类似的结果,则说明启动成功。

 ps -ef |grep redis
501   419     1   0  8:43上午 ??         0:13.16 /usr/local/opt/redis/bin/redis-server 127.0.0.1:6379
  501  4286     1   0 10:56上午 ??         1:19.15 redis-server 127.0.0.1:7000 [cluster]
  501  4330     1   0 10:56上午 ??         1:18.52 redis-server 127.0.0.1:7001 [cluster]
  501  4397     1   0 10:57上午 ??         1:18.83 redis-server 127.0.0.1:7003 [cluster]
  501  4422     1   0 10:57上午 ??         1:18.39 redis-server 127.0.0.1:7004 [cluster]
  501  4440     1   0 10:57上午 ??         1:18.44 redis-server 127.0.0.1:7005 [cluster]
  501  5927     1   0  2:58下午 ??         1:10.62 redis-server 127.0.0.1:7002 [cluster]
  501 34451 34405   0  9:38下午 ttys004    0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox redis

创建集群

当前系统中已经有了6个正在运行的 Redis 实例,需要使用 Redis 的命令 redis-cli 来完成集群的创建工作。redis-cli --cluster help 帮助命令向实例发送特殊命令来完成创建新集群,检查集群

执行以下命令:

redis-cli create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

创建过程会打印类似如下的信息,表示创建集群成功。

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 2730
Master[1] -> Slots 2731 - 5460
Master[2] -> Slots 5461 - 8191
Master[3] -> Slots 8192 - 10922
Master[4] -> Slots 10923 - 13652
Master[5] -> Slots 13653 - 16383
M: bd9b7298a1f340c290a717ad452d1fbd449270cc 127.0.0.1:7000
   slots:[0-2730] (2731 slots) master
M: e96444509b2414c9bbb50ee17aeae1d7a732bbd8 127.0.0.1:7001
   slots:[2731-5460] (2730 slots) master
M: 43a50120f6150a398d591b0ba25a2cce52ea33dd 127.0.0.1:7002
   slots:[5461-8191] (2731 slots) master
M: 35c5f82b8cf23b074274b0fb5bffb3b44301fee1 127.0.0.1:7003
   slots:[8192-10922] (2731 slots) master
M: 4f9917ce10f90eab9a3bb3ddbaa1eda734ba125b 127.0.0.1:7004
   slots:[10923-13652] (2730 slots) master
M: d6213bae301b9b8484c035b03d0dc61c28e29e0f 127.0.0.1:7005
   slots:[13653-16383] (2731 slots) master
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join
....
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: bd9b7298a1f340c290a717ad452d1fbd449270cc 127.0.0.1:7000
   slots:[0-2730] (2731 slots) master
M: 43a50120f6150a398d591b0ba25a2cce52ea33dd 127.0.0.1:7002
   slots:[5461-8191] (2731 slots) master
M: 35c5f82b8cf23b074274b0fb5bffb3b44301fee1 127.0.0.1:7003
   slots:[8192-10922] (2731 slots) master
M: d6213bae301b9b8484c035b03d0dc61c28e29e0f 127.0.0.1:7005
   slots:[13653-16383] (2731 slots) master
M: 4f9917ce10f90eab9a3bb3ddbaa1eda734ba125b 127.0.0.1:7004
   slots:[10923-13652] (2730 slots) master
M: e96444509b2414c9bbb50ee17aeae1d7a732bbd8 127.0.0.1:7001
   slots:[2731-5460] (2730 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

验证集群可用性

通过两种方式验证集群的可用性:1. 通过 redis-trib 提供的命令;2. 登录客户端,执行操作

  • 检查集群的状态:redis-cli --cluster check 127.0.0.1:7000
# 执行命令 redis-cli redis-cli --cluster check 127.0.0.1:7000 可以看到类似如下的打印信息,ip 与 port 指定集群中的任意一个
 127.0.0.1:7000 (bd9b7298...) -> 0 keys | 2731 slots | 0 slaves.
127.0.0.1:7002 (43a50120...) -> 0 keys | 2731 slots | 0 slaves.
127.0.0.1:7003 (35c5f82b...) -> 0 keys | 2731 slots | 0 slaves.
127.0.0.1:7005 (d6213bae...) -> 0 keys | 2731 slots | 0 slaves.
127.0.0.1:7004 (4f9917ce...) -> 0 keys | 2730 slots | 0 slaves.
127.0.0.1:7001 (e9644450...) -> 0 keys | 2730 slots | 0 slaves.
[OK] 0 keys in 6 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: bd9b7298a1f340c290a717ad452d1fbd449270cc 127.0.0.1:7000
   slots:[0-2730] (2731 slots) master
M: 43a50120f6150a398d591b0ba25a2cce52ea33dd 127.0.0.1:7002
   slots:[5461-8191] (2731 slots) master
M: 35c5f82b8cf23b074274b0fb5bffb3b44301fee1 127.0.0.1:7003
   slots:[8192-10922] (2731 slots) master
M: d6213bae301b9b8484c035b03d0dc61c28e29e0f 127.0.0.1:7005
   slots:[13653-16383] (2731 slots) master
M: 4f9917ce10f90eab9a3bb3ddbaa1eda734ba125b 127.0.0.1:7004
   slots:[10923-13652] (2730 slots) master
M: e96444509b2414c9bbb50ee17aeae1d7a732bbd8 127.0.0.1:7001
   slots:[2731-5460] (2730 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
  • 查看集群的信息:redis-cli --cluster info
# 执行命令 redis-cli --cluster info 127.0.0.1:7000 可以看到类似如下的打印信息,ip 与 port 指定集群中的任意一个
 redis-cli --cluster info 127.0.0.1:7000
127.0.0.1:7000 (bd9b7298...) -> 0 keys | 2731 slots | 0 slaves.
127.0.0.1:7002 (43a50120...) -> 0 keys | 2731 slots | 0 slaves.
127.0.0.1:7003 (35c5f82b...) -> 0 keys | 2731 slots | 0 slaves.
127.0.0.1:7005 (d6213bae...) -> 0 keys | 2731 slots | 0 slaves.
127.0.0.1:7004 (4f9917ce...) -> 0 keys | 2730 slots | 0 slaves.
127.0.0.1:7001 (e9644450...) -> 0 keys | 2730 slots | 0 slaves.
[OK] 0 keys in 6 masters.
0.00 keys per slot on average.
  • 登录任意一个节点,执行命令
# 登录任意一个节点,执行 set、get 等命令
 redis-cli -c -p 7000
127.0.0.1:7000> set name helloword
-> Redirected to slot [5798] located at 127.0.0.1:7001
OK
127.0.0.1:7001> get name
"helloword"

到此,Mac 环境下 Redis 集群的搭建就完成了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值