当前位置: 首页 > news >正文

单机集群部署(redis5.0)

环境:
OS:Centos 7
redis:5.0.14

角色 机器ip
主 192.168.1.105 7001
从 192.168.1.105 7002
主 192.168.1.105 7003
从 192.168.1.105 7004
主 192.168.1.105 7005
从 192.168.1.105 7006

1.下载安装介质
我这里下载的是redis-5.0.14.tar.gz
下载地址:
http://download.redis.io/releases/

2.解压介质并安装
[root@localhost soft]# tar -xvf redis-5.0.14.tar.gz
[root@localhost soft]# cd redis-5.0.14
[root@node1 redis-5.0.14]# make
[root@node1 redis-5.0.14]# make test
没有问题的话,会输入如下信息

\o/ All tests passed without errors!

Cleanup: may take some time... OK
make[1]: Leaving directory `/soft/redis-5.0.14/src'
[root@node1 redis-5.0.14]#

安装到指定的目录,默认是安装在/usr/bin目录,我们这里统一安装到/usr/local/services/redis目录,该目录不用提前创建
[root@node1 redis-5.0.14]# cd src
[root@node1 src]# make PREFIX=/usr/local/services/redis install

Hint: It's a good idea to run 'make test' ;)

INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install

拷贝 ./scr/redis-trib.rb到指定的目录,该脚本是用来创建集群用的
[root@node1 src]# cp redis-trib.rb /usr/local/services/redis/

 

3.创建目录并修改相应权限
[root@localhost src]# mkdir -p /home/middle/redis/conf
[root@localhost src]# mkdir -p /home/middle/redis/data
[root@localhost src]# mkdir -p /home/middle/redis/logs
[root@localhost src]# mkdir -p /home/middle/redis/run

创建数据目录
[root@localhost src]#mkdir -p /home/middle/redis/data/redis_7001
[root@localhost src]#mkdir -p /home/middle/redis/data/redis_7002
[root@localhost src]#mkdir -p /home/middle/redis/data/redis_7003
[root@localhost src]#mkdir -p /home/middle/redis/data/redis_7004
[root@localhost src]#mkdir -p /home/middle/redis/data/redis_7005
[root@localhost src]#mkdir -p /home/middle/redis/data/redis_7006

 

4.创建配置文件

vi /home/middle/redis/conf/7001.conf

内如如下:

daemonize yes
bind 192.168.1.105
protected-mode yes
port 7001
tcp-backlog 511
timeout 300
tcp-keepalive 300
supervised no
pidfile "/home/middle/redis/run/redis_7001.pid"
loglevel notice
logfile "/home/middle/redis/logs/redis_7001.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/home/middle/redis/data/redis_7001"
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 yes
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
cluster-enabled yes
cluster-config-file "7001.conf"
cluster-node-timeout 5000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
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
##masterauth "hxl2018"
##requirepass "hxl2018"
maxmemory-policy allkeys-lfu
maxmemory 2gb
maxmemory-samples 5

 

密码先注释掉,等创建了集群后再启用

拷贝 7001.conf 生成 7002.conf 配置文件
cd /home/middle/redis/conf
cp 7001.conf 7002.conf
cp 7001.conf 7003.conf
cp 7001.conf 7004.conf
cp 7001.conf 7005.conf
cp 7001.conf 7006.conf

 

替换修改配置文件的内容
sed -i 's/7001/7002/g' /home/middle/redis/conf/7002.conf
sed -i 's/7001/7003/g' /home/middle/redis/conf/7003.conf
sed -i 's/7001/7004/g' /home/middle/redis/conf/7004.conf
sed -i 's/7001/7005/g' /home/middle/redis/conf/7005.conf
sed -i 's/7001/7006/g' /home/middle/redis/conf/7006.conf

-----------------启动---------------------------------
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7001.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7002.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7003.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7004.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7005.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7006.conf

 

查看进程情况

[root@node1 conf]# ps -ef|grep redis
root      160636       1  0 16:39 ?        00:00:00 /usr/local/services/redis/bin/redis-server 192.168.1.105:7001 [cluster]
root      160688       1  0 16:39 ?        00:00:00 /usr/local/services/redis/bin/redis-server 192.168.1.105:7002 [cluster]
root      160694       1  0 16:39 ?        00:00:00 /usr/local/services/redis/bin/redis-server 192.168.1.105:7003 [cluster]
root      160754       1  0 16:39 ?        00:00:00 /usr/local/services/redis/bin/redis-server 192.168.1.105:7004 [cluster]
root      160760       1  0 16:39 ?        00:00:00 /usr/local/services/redis/bin/redis-server 192.168.1.105:7005 [cluster]
root      160819       1  0 16:39 ?        00:00:00 /usr/local/services/redis/bin/redis-server 192.168.1.105:7006 [cluster]

 

----------------------------配置集群-------------------------------------
1.创建集群
[root@node1 conf]# /usr/local/services/redis/redis-trib.rb create --replicas 1 192.168.1.105:7001 192.168.1.105:7002 192.168.1.105:7003 192.168.1.105:7004 192.168.1.105:7005 192.168.1.105:7006
/usr/bin/env: ruby: No such file or directory

解决办法:
需要安装ruby
https://www.cnblogs.com/hxlasky/p/14734140.html

 

再次报错:

[root@node1 ~]# /usr/local/services/redis/redis-trib.rb create --replicas 1 192.168.1.105:7001 192.168.1.105:7002 192.168.1.105:7003 192.168.1.105:7004 192.168.1.105:7005 192.168.1.105:7006
WARNING: redis-trib.rb is not longer available!
You should use redis-cli instead.All commands and features belonging to redis-trib.rb have been moved
to redis-cli.
In order to use them you should call redis-cli with the --cluster
option followed by the subcommand name, arguments and options.Use the following syntax:
redis-cli --cluster SUBCOMMAND [ARGUMENTS] [OPTIONS]Example:
redis-cli --cluster create 192.168.1.105:7001 192.168.1.105:7002 192.168.1.105:7003 192.168.1.105:7004 192.168.1.105:7005 192.168.1.105:7006 --cluster-replicas 1To get help about all subcommands, type:
redis-cli --cluster help

 

发现5.0版本不需要使用redis-trib.rb创建集群了,改用redis-cli --cluster create创建集群了

/usr/local/services/redis/bin/redis-cli --cluster create 192.168.1.105:7001 192.168.1.105:7002 192.168.1.105:7003 192.168.1.105:7004 192.168.1.105:7005 192.168.1.105:7006 --cluster-replicas 1
[root@node1 ~]# /usr/local/services/redis/bin/redis-cli --cluster create 192.168.1.105:7001 192.168.1.105:7002 192.168.1.105:7003 192.168.1.105:7004 192.168.1.105:7005 192.168.1.105:7006 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.1.105:7005 to 192.168.1.105:7001
Adding replica 192.168.1.105:7006 to 192.168.1.105:7002
Adding replica 192.168.1.105:7004 to 192.168.1.105:7003
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 9257ed5948d9a0a82da9729960ab8e34cf6cc219 192.168.1.105:7001slots:[0-5460] (5461 slots) master
M: 533b2cb5d031272d0fe45c3325d74496617280fd 192.168.1.105:7002slots:[5461-10922] (5462 slots) master
M: eb85686991a5c128a31c19cb67976eb04e5d329b 192.168.1.105:7003slots:[10923-16383] (5461 slots) master
S: e9006b1d33640e81b7e50c1cc58f8532c2aeb9c9 192.168.1.105:7004replicates 533b2cb5d031272d0fe45c3325d74496617280fd
S: d3911b1bf7967c4968bdef6e39bfe17467706070 192.168.1.105:7005replicates eb85686991a5c128a31c19cb67976eb04e5d329b
S: 6da827c6f3f78f0b85d8db7102164e9f71ec4d58 192.168.1.105:7006replicates 9257ed5948d9a0a82da9729960ab8e34cf6cc219
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 192.168.1.105:7001)
M: 9257ed5948d9a0a82da9729960ab8e34cf6cc219 192.168.1.105:7001slots:[0-5460] (5461 slots) master1 additional replica(s)
S: d3911b1bf7967c4968bdef6e39bfe17467706070 192.168.1.105:7005slots: (0 slots) slavereplicates eb85686991a5c128a31c19cb67976eb04e5d329b
M: eb85686991a5c128a31c19cb67976eb04e5d329b 192.168.1.105:7003slots:[10923-16383] (5461 slots) master1 additional replica(s)
S: 6da827c6f3f78f0b85d8db7102164e9f71ec4d58 192.168.1.105:7006slots: (0 slots) slavereplicates 9257ed5948d9a0a82da9729960ab8e34cf6cc219
M: 533b2cb5d031272d0fe45c3325d74496617280fd 192.168.1.105:7002slots:[5461-10922] (5462 slots) master1 additional replica(s)
S: e9006b1d33640e81b7e50c1cc58f8532c2aeb9c9 192.168.1.105:7004slots: (0 slots) slavereplicates 533b2cb5d031272d0fe45c3325d74496617280fd
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

 

2.启用密码
停掉每个节点,修改配置文件,启用密码认证
/usr/local/services/redis/bin/redis-cli -h 192.168.1.105 -p 7001 shutdown
/usr/local/services/redis/bin/redis-cli -h 192.168.1.105 -p 7002 shutdown
/usr/local/services/redis/bin/redis-cli -h 192.168.1.105 -p 7003 shutdown
/usr/local/services/redis/bin/redis-cli -h 192.168.1.105 -p 7004 shutdown
/usr/local/services/redis/bin/redis-cli -h 192.168.1.105 -p 7005 shutdown
/usr/local/services/redis/bin/redis-cli -h 192.168.1.105 -p 7006 shutdown

修改配置文件
vi /home/middle/redis/conf/7001.conf
vi /home/middle/redis/conf/7002.conf
vi /home/middle/redis/conf/7003.conf
vi /home/middle/redis/conf/7004.conf
vi /home/middle/redis/conf/7005.conf
vi /home/middle/redis/conf/7006.conf
修改每个节点的配置文件,把每个节点的配置文件如下两项先注释掉
##masterauth "自己设定的密码"
##requirepass "自己设定的密码"

再次启动
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7001.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7002.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7003.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7004.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7005.conf
/usr/local/services/redis/bin/redis-server /home/middle/redis/conf/7006.conf

 

查看集群

/usr/local/services/redis/bin/redis-cli -c -h 192.168.1.105 -p 7001 -a hxl2018192.168.1.105:7001> cluster nodes
e9006b1d33640e81b7e50c1cc58f8532c2aeb9c9 192.168.1.105:7004@17004 slave 533b2cb5d031272d0fe45c3325d74496617280fd 0 1761209902035 4 connected
eb85686991a5c128a31c19cb67976eb04e5d329b 192.168.1.105:7003@17003 master - 0 1761209901530 3 connected 10923-16383
d3911b1bf7967c4968bdef6e39bfe17467706070 192.168.1.105:7005@17005 slave eb85686991a5c128a31c19cb67976eb04e5d329b 0 1761209901530 3 connected
6da827c6f3f78f0b85d8db7102164e9f71ec4d58 192.168.1.105:7006@17006 slave 9257ed5948d9a0a82da9729960ab8e34cf6cc219 0 1761209901000 6 connected
9257ed5948d9a0a82da9729960ab8e34cf6cc219 192.168.1.105:7001@17001 myself,master - 0 1761209901000 1 connected 0-5460
533b2cb5d031272d0fe45c3325d74496617280fd 192.168.1.105:7002@17002 master - 0 1761209900591 2 connected 5461-10922
192.168.1.105:7001> 192.168.1.105:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:997
cluster_stats_messages_pong_sent:225
cluster_stats_messages_fail_sent:4
cluster_stats_messages_sent:1226
cluster_stats_messages_ping_received:225
cluster_stats_messages_pong_received:225
cluster_stats_messages_fail_received:6
cluster_stats_messages_received:456

 

http://www.hskmm.com/?act=detail&tid=37839

相关文章:

  • 关于九州通WMS函数 SQL的相关保存表名
  • mac 安装 comfyui 简易过程
  • 2025 年国内涂装线设备厂家最新推荐榜单:电泳 / 喷粉 / 喷漆 / 浸漆 / 喷塑 / 全自动设备优质品牌全面盘点
  • 权威调研榜单:环形导轨实力厂家TOP3榜单好评深度解析
  • 2025 最新海外仓公司口碑排行榜发布:欧美东南亚热门市场服务商最新推荐及选择指南 海外仓换标公司 / 维修 / 检测公司推荐
  • 换 Windows 新电脑?教你将旧电脑程序传输新电脑技巧
  • Spring 重试接口和回滚接口
  • P2231 [HNOI2002] 跳蚤 分析
  • 权威调研榜单:圆弧导轨实力厂家TOP3榜单好评深度解析
  • 基于PCIe3.0X16的的100G光纤采集存储设备
  • 2025年10月美白精华评价榜:五款高口碑单品横向对比
  • 2025 升降机厂家最新推荐排行榜,剪叉式升降机/导轨式升降机/固定式升降机/液压升降机公司推荐
  • 2025 年桥架源头厂家最新推荐排行榜:聚焦优质品牌核心优势助力采购决策
  • 2025 人力资源管理系统厂商最新推荐排行榜:聚焦 AI 赋能与行业适配,解锁数智化管理新路径
  • (React中组件的)状态(state)和属性(props)之间有何不同?
  • 2025 年最新推荐!AI 教育培训机构推荐榜单:覆盖企业 AI 培训 / AI 应用落地 / AI 商业培训等多场景,帮你精准挑选优质机构
  • 2025年6月杭州丝绸品牌推荐:老字号排名与AIGC创新对比
  • 2025 年集装袋厂家最新推荐榜单:全面剖析行业领军者创新工艺与卓越品质,精选导电 / 防静电 / 抗静电 / 铝箔 / 食品级等多类型产品优质厂家
  • 2025 年算法备案咨询服务公司最新推荐榜单:覆盖互联网信息 / 深度合成 / AI 大模型备案的权威优选指南
  • 基于Java+Springboot+Vue开发的鲜牛奶订购网站管理系统(前后端分离)源码+运行步骤
  • 2025年10月PE管厂家推荐榜:五强对比与选购全攻略
  • P9356 「SiR-1」Bracket 做题记录
  • 放大器保护机制的技术原理与应用实践
  • 安卓照片误删?这 5 种恢复方法亲测有效,小白也能上手
  • 2025年10月浦东装修公司口碑榜:五强对比评测
  • MySQL学习笔记-部分实例datagrip源码-10-21
  • sudo apt install cmake ERROR: ld.so: object /home/ma-user/anaconda3/envs/xxxx/lib/python3.9/site-pa
  • 2025年10月中国引流营销公司推荐榜:五强对比评测
  • 示波器探头衰减怎么判断?3 种方法 + 常见问题,新手也能学会​
  • 制造业数字化效率低到哭?AI 低代码自动生接口、拼流程,JNPF 级平台让集成效率提 500% - 实践