redis6-伪集群搭建

2次阅读

共计 1742 个字符,预计需要花费 5 分钟才能阅读完成。

redis 伪集群搭建

资源有限,在一台机器上搭建了 6 个节点的 redis 集群,记录搭建过程已经遇到的问题。
在搭建过程中发现搭建方式和之前的版本差别挺大的

环境

  • Centos7
  • redis6

redis 命令

启动、停止、重启

./redis-server [conf]
./redis-server stop
./redis-server restart

连接命令

./redis-cli [-h] [-p] [-a]

参数说明:-h连接 ip(和配置文件中的 bind 属性有关),
-p连接端口,
-a密码 (配置文件requirpass 属性)

操作命令

命令 举例 说明
auth auth 123456 连接后认证
select select 15 选择数据库(redis 单机版默认 16 个)
keys keys * 查询所有 key
set set name lisi 保存 key-value
get get name key 获取 value
flushall 清除所有数据
cluster nodes 查看节点
info 内存使用情况
slowlog get slowlog get 2 获取2条慢记录

集群搭建

<!– more –>

环境准备阶段 redis6 和之前的版本没差别

配置文件准备

先修改 redis 基础配置文件 redis.conf.default

port 6379
requirpass 123456 # 密码
bind 192.168.1.17  # 绑定当前机器 IP
cluster-enabled yes # 取消注释,启动集群模式
cluster-config-file nodes-6379.conf # 取消注释
cluster-node-timeout 15000 # 取消注释
appendonly yes # 将 no 修改为 yes

集群配置文件

cd /usr/local/redis/conf
echo 9001.conf 9002.conf 9003.conf 9004.conf 9005.conf 9006.conf | xargs -n 1 cp -v redis.conf.default
sed -i 's/6379/9001/g'  9001.conf 
sed -i 's/6379/9002/g'  9002.conf 
sed -i 's/6379/9003/g'  9003.conf 
sed -i 's/6379/9004/g'  9004.conf 
sed -i 's/6379/9005/g'  9005.conf 
sed -i 's/6379/9006/g'  9006.conf 

配置完成后,各自启动./redis-server ../conf/9001.conf

集群配置

/usr/local/redis/src/redis-cli -p 9001 -a 123456 --cluster create --cluster-replicas 192.168.1.17:9001 192.168.1.17:9002 192.168.1.17:9003 192.168.1.17:9004 192.168.1.17:9005 192.168.1.17:9006

redis 之前的版本启动命令是 /usr/local/redis/src/redis-trib.rb create --replicas 1 192.168.2.123:9001 192.168.2.123:9002 192.168.2.123:9003 192.168.2.123:9004 192.168.2.123:9005 192.168.2.123:9006, 命令类似,就是将 redis-trib.rb 的功能集成到了 redis-cli 中。
使用 ./redis-cli --cluster help 获取 cluster 命令说明

配置完成后登录节点使用 cluster nodes 查看主从节点配置情况

配置过程中遇到的问题

slot 已经占用

[ERR] Node 20.21.1.172:9001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

说明 redis 节点存在已经被使用的情况,建立集群前要先保证各节点为空。

登录各节点,使用 cluster nodes 查看插槽 slot 是否为空,不为空使用 flushallcluster reset重置,
重置后再进行集群创建

正文完
 0