前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >redis集群原理,redis集群配置,redis集群搭建及配置

redis集群原理,redis集群配置,redis集群搭建及配置

原创
作者头像
高久峰
发布于 2023-06-29 15:02:15
发布于 2023-06-29 15:02:15
39800
代码可运行
举报
运行总次数:0
代码可运行

(1).安装redis.编译安装redis5.0

(2).创建6个Redis配置文件

 6个配置文件不能在同一个目录,此处我们定义如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/www/server/redis/redis-cluster-conf/7001/redis.conf
/www/server/redis/redis-cluster-conf/7002/redis.conf
/www/server/redis/redis-cluster-conf/7003/redis.conf
/www/server/redis/redis-cluster-conf/7004/redis.conf
/www/server/redis/redis-cluster-conf/7005/redis.conf
/www/server/redis/redis-cluster-conf/7006/redis.conf

配置文件的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bind 0.0.0.0
port 7001  #端口
cluster-enabled yes #启用集群模式
cluster-config-file nodes.conf
cluster-node-timeout 5000 #超时时间
appendonly yes
daemonize yes #后台运行
protected-mode no #非保护模式
pidfile  /var/run/redis_7001.pid
cluster-config-file nodes_7001.conf #

其中port、pidfile、cluster-config-file每个配置文件要递增数字

(4).启动全部节点,建议保存为sh文件执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/www/server/redis/src/redis-server   /www/server/redis/redis-cluster-conf/7001/redis.conf
/www/server/redis/src/redis-server   /www/server/redis/redis-cluster-conf/7002/redis.conf
/www/server/redis/src/redis-server   /www/server/redis/redis-cluster-conf/7003/redis.conf
/www/server/redis/src/redis-server   /www/server/redis/redis-cluster-conf/7004/redis.conf
/www/server/redis/src/redis-server   /www/server/redis/redis-cluster-conf/7005/redis.conf
/www/server/redis/src/redis-server   /www/server/redis/redis-cluster-conf/7006/redis.conf

(5).启动集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
redis-cli --cluster create 192.168.13.125:7001 192.168.13.125:7002 192.168.13.125:7003 192.168.13.125:7004 192.168.13.125:7005 192.168.13.125:7006 --cluster-replicas 1

输出的log:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> 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.13.125:7004 to 192.168.13.125:7001
Adding replica 192.168.13.125:7005 to 192.168.13.125:7002
Adding replica 192.168.13.125:7006 to 192.168.13.125:7003
>>> Trying to optimize slaves allocation for anti-affinity
[WARNING] Some slaves are in the same host as their master
M: 934700bc6ef9b59354952864b203fb242330815d 192.168.13.125:7001
   slots:[0-5460] (5461 slots) master
M: 714005417369f83fbfb654a237f7aa665e88d016 192.168.13.125:7002
   slots:[5461-10922] (5462 slots) master
M: 5bd69e526f3547858cb09781d1c948385d5f0927 192.168.13.125:7003
   slots:[10923-16383] (5461 slots) master
S: 25125090e96a7b464f747b749e1ef3241eecaaa1 192.168.13.125:7004
   replicates 714005417369f83fbfb654a237f7aa665e88d016
S: 0cf1689aea364023c78b6582faa8a16d29d037f3 192.168.13.125:7005
   replicates 5bd69e526f3547858cb09781d1c948385d5f0927
S: 60026698155e403bb201e7212ea0b287342a44b2 192.168.13.125:7006
   replicates 934700bc6ef9b59354952864b203fb242330815d
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.13.125:7001)
M: 934700bc6ef9b59354952864b203fb242330815d 192.168.13.125:7001
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 714005417369f83fbfb654a237f7aa665e88d016 192.168.13.125:7002
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 0cf1689aea364023c78b6582faa8a16d29d037f3 192.168.13.125:7005
   slots: (0 slots) slave
   replicates 5bd69e526f3547858cb09781d1c948385d5f0927
M: 5bd69e526f3547858cb09781d1c948385d5f0927 192.168.13.125:7003
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: 60026698155e403bb201e7212ea0b287342a44b2 192.168.13.125:7006
   slots: (0 slots) slave
   replicates 934700bc6ef9b59354952864b203fb242330815d
S: 25125090e96a7b464f747b749e1ef3241eecaaa1 192.168.13.125:7004
   slots: (0 slots) slave
   replicates 714005417369f83fbfb654a237f7aa665e88d016
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

(6).php连接测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php

/**
 * Redis集群
 * RedisCluster类介绍.网上资料不全.自己翻译水平有限.有错误请提出
 * 参数1:用于通过名称加载集群配置,但是需要我们在redis.ini中提前配置好对应的名称和数据,例如redis.ini的配置如下:
 * // redis.clusters.seeds = "mycluster[]=localhost:7000&test[]=localhost:7001"
 * // redis.clusters.timeout = "mycluster=5"
 * // redis.clusters.read_timeout = "mycluster=10"
 * 那么直接new RedisCluster('mycluster')即可实例化,但是通常我们的配置是在php文件中,所以百度上面的文档第一个参数都是NULL
 * 参数2:用于通过PHP数组来加载集群Host
 * 参数3:连接多久算超时,单位是秒
 * 参数4:读取多久算超时,单位是秒
 * 参数5:是否开启持久连接
 * 参数6:连接密码(文档有写,但是实际没有这个参数)
 * 其他demo参考:https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#readme
 */
$config = [
    '192.168.13.125:7001',
    '192.168.13.125:7002',
    '192.168.13.125:7003',
    '192.168.13.125:7004',
    '192.168.13.125:7005',
    '192.168.13.125:7006',
];

$redisCluster = new RedisCluster(null, $config, 1.5, 1.5, true);

$redisCluster->set('username', 'chenhuohuo');

$value = $redisCluster->get('username');

var_dump($value);

解析:redis集群分为主从复制、哨兵模式、Cluster模式.通常使用cluster模式,本文也是使用的cluster模式。cluster模式不会同步数据,我们获取一个key是通过底层的算法自动去找对应节点来拿数据,所以不要用节点1设置key,节点2去获取key,是无法获取到的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Redis Cluster模式
主从模式和哨兵模式数据库都存储了相同的数据,比较浪费内存。而且当数据量增加时,在单个数据库上很难实现在线扩容。Redis Cluster将数据分布存储在不同的节点上,每个节点存储不同的数据。添加节点就能解决扩容问题。
用户10384376
2023/02/26
6840
Redis Cluster模式
Redis Cluster集群搭建及节点的添加、删除
Redis Cluster集群搭建及节点的添加、删除
Java架构师必看
2021/05/14
1.7K0
Redis Cluster集群搭建及节点的添加、删除
SpringCloud 妹子图之 Redis 高可用集群
一般的小项目,比如几百人左右访问的项目,访问量几万的项目,如果想用缓存,单机实例完全够用。小黄图就是用的阿里云256MB配置的Redis缓存,日几千的访问量是妥妥够用的了。
小柒2012
2020/07/09
8210
redis集群搭建
redis cluster(redis集群)是redis3.0之后的版本才支持的架构,和其他集群一样,redis集群也是为了解决单台服务器不够用的情况。redis cluster是一个分布式的集群方案,它支持横向扩展。redis的集群方案不单止官方的redis cluster,还有第三方的Codis集群方案。Codis类似于LVS做负载均衡一样,它用的是路由的技术。而官方的redis cluster则是把所有的节点都互联,实现数据共享。
端碗吹水
2020/09/23
8710
redis集群搭建
Redis Cluster
为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。
一点博客
2019/07/24
6400
Redis集群搭建以及操作
Redis可以分布式存储,集群 Redis最少需要三个节点,三个节点还需要备份 每个节点的地位都是平等的,每个都有连接 Redis 3.0以上做集群 通过hash slot(槽点)来分配,有16384个槽点(0-16384),平均分配到每个节点上,只有有槽点才能够存储数据,主节点处于工作的状态(槽点),从节点上面没有槽点,当主节点宕机,主节点会把槽点迁移从节点,然后从节点就变成主节点,继续集群的正常运行。
全栈程序员站长
2022/06/29
3070
Redis集群搭建以及操作
redis 3.0尝鲜
1.安装redis wget  http://download.redis.io/releases/redis-3.0.5.tar.gz tar zxf  redis-3.0.5.tar.gz  -C /export/server/ cd /export/servers/redis-3.0.5 make && make install  mkdir conf;cp redis.conf conf/ 2.redis集群模式配置 2.1redis主配置文件: vim  /export/servers/red
BGBiao
2018/02/26
8580
Redis 6.X Cluster 集群搭建
码哥带大家完成在 CentOS 7 中安装 Redis 6.x 教程。在学习 Redis Cluster 集群之前,我们需要先搭建一套集群环境。机器有限,实现目标是一台机器上搭建 6 个节点,构成一个三主三从集群模式。
码哥字节
2021/04/08
2.2K0
如何搭建高可用redis的集群(非常详细,适合新手)
以前总结Redis 的一些基本的安装和使用,大家可以这这里查看Redis 系列文章:https://www.cnblogs.com/zhangweizhong/category/771056.html。
章为忠学架构
2019/08/08
1.3K0
如何搭建高可用redis的集群(非常详细,适合新手)
Redis 分布式集群架构配置
一、认识Redis集群 集群概念应该不陌生了,多台机器组成,用来解决像存储空间,查询速度,负载等提供一个或多个服务支持! Redis集群 是一个分布式的一种架构,支持横向扩展,也就是说之前咱们配置的LVS+keepalived需要配置好基础环境,然后加入到集群系统。现在的Redis分布式,是只需要把Redis这个集群配置到当前配置内就可以自动的去工作了~ Redis Cluster设计要点 redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对
老七Linux
2018/05/31
2.1K0
Redis集群部署(二)
经历了redis5.x之前(redis3.x或redis4.x)集群部署过程中ruby版本及各种依赖包蹂躏后,再感受一下redis5.x之后集群部署的便捷。
俊才
2022/03/07
5350
Redis集群部署(二)
CentOS 7下Redis5集群的搭建和使用
Redis5.0版是Redis产品的重大版本发布,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂度大大降低。关于集群的更新可以在 Redis5 的版本说明中看到,如下:
星哥玩云
2022/08/18
4420
CentOS 7下Redis5集群的搭建和使用
redis实际操作部署篇(二)
对于redis来说,它有四种部署模式,分别是单机模式、主从模式、哨兵模式和集群模式,他们的使用场景有些区别,当然也是越来越复杂,可靠性越来越高。
灰子学技术
2021/01/06
6820
redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞sharding,现在方便多了,直接上cluster功能就行了,而且还支持节点动态添加、HA、节点增减后缓存重新分布(resharding)。 下面是参考官方教程cluster-tutorial 在mac机上搭建cluster的过程: 一、下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.
菩提树下的杨过
2018/01/18
8810
redis 学习笔记(6)-cluster集群搭建
Redis Cluster 3.0集群部署与使用
在说明使用和安装之前,先大概介绍下,Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施。通过分区(partition)来提供一定程度的可用性(availability),即使集群中有一部分节点失效或者无法进行通讯,集群也可以继续处理命令请求。
Linux运维技术之路
2022/06/07
4820
Redis Cluster 3.0集群部署与使用
Redis-cluster搭建详细攻略
redis-cluster实战 环境 192.168.10.45 192.168.10.46 192.168.10.47 安装过程记录 install redis @all cd /opt wget http://download.redis.io/releases/redis-4.0.1.tar.gz tar xzf redis-4.0.1.tar.gz cd redis-4.0.1 make config and start node @192.168.10.45 mkdir /opt/redis-4.
mingjie
2022/05/12
2780
Redis高可用-Cluster
Redis有三种高可用方案:主从,哨兵(sentinel),集群(cluster)。哨兵和集群模式都是基于redis主从来实现的,普通的redis主从无法实现自动的高可用切换。
数据库架构之美
2021/03/16
4430
Redis集群操作手册
[root@bhz004 ~]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
HUC思梦
2020/09/03
6420
Redis集群操作手册
Redis 集群操作实战
Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在 3.0 版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是互联网企业动辄大几百G的数据,可这些模式没法满足业务的需求,所以 Redis 在 3.0 版本以后就推出了集群模式。
BUG弄潮儿
2021/04/12
3950
Redis之集群环境搭建
前面文章介绍了Redis的主从复制,虽然该模式能够在一定程度上提高系统的稳定性,但是在数据访问量比较大的情况下,单个master应付起来还是比较吃力的,这时我们可以考虑将redis集群部署,本文就来重点给大家介绍下Redis的集群部署操作。
用户4919348
2019/04/02
6950
Redis之集群环境搭建
相关推荐
Redis Cluster模式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验