Redis集群 - 配置最简单的Redis主从读写分离

简介: Redis集群 - 配置最简单的Redis主从读写分离

要求:

1、你已经知道redis是什么

2、熟悉Linux基本操作(CentOS 6.5)

3、有单机redis开发相关经验

4、有主观能动性,至少熟练百度的使用

redis主从配置初步:2个节点主从

如果我们redis的压力很大,如果我们的并发高到我们读数据和写数据都有了很大压力。

那么我们可能就需要把redis分开部署,并且配置为一个『主从』的状态。

首先我们要安装redis

官网地址:

https://redis.io

(一定要去官网下载)

下载之后,会有一个redis-3.2.8.tar.gz

(注意我们后面整个过程不要使用root帐号,我这里是在一个叫’admin’的用户下’)

1、解压

tar zxvf redis-3.2.8.tar.gz

2、进入redis源码目录

cd redis-3.2.8

这里边的文件,我们需要编译

3、编译

根据手册

https://redis.io/download

执行命令:

make

编译好后会在src目录生成一些可执行文件

为了方便,我们把一些文件拷贝到/usr/local/redis中

1、在/usr/local/下创建需要的目录

cd /usr/local
sudo mkdir redis #创建目录

注意:如果报”admin is not in the sudoers file. This incident will be reported.”错误。是因为执行sudo命令的用户不在sudoers文件的列表中。可以通过编辑sudoers文件,来解决这个问题。

切换到root帐号执行:vi /etc/sudoers

为了让admin这个用户能够执行sudo命令,在sudoers文件中加入一行:

admin ALL=(ALL) ALL

2、/usr/local/redis目录创建成功,需要修改redis目录所有者

sudo chown -R admin:admin redis/

3、然后在redis目录,新建binconf目录。(不是必须的,只不是过为了方便而已)

4、把前面编译后的redis的可执行文件(在redis-3.2.8/src/下),复制到/usr/local/redis/bin里面去

sudo cp redis* /usr/local/redis/bin/
#拷贝redis开头的所有文件

5、redis提供给我们了一个默认的配置文件redis.conf

把它复制到/usr/local/redis/conf目录下,并改名为6379.conf

sudo cp redis.conf  /usr/local/redis/conf/6379.conf

6、删除一些不必要的文件(我们只需要redis的可执行文件)

sudo rm *.c
 sudo rm *.o
 sudo rm *.h

7、修改配置文件

sudo vi 6379.conf

修改如下几个配置:

daemonize no 
修改为:
daemonize yes  (后台程序方式运行)
pidfile /var/run/redis_6379.pid
修改为:
pidfile /usr/local/redis/redis_6379.pid
(把pidfile生成到有权限的目录下)

8、启动

注意文件夹路径不要搞错

/usr/local/redis/bin/redis-server /usr/local/redis/conf/6379.conf

9、配置从节点

sudo cp 6379.conf 6380.conf

修改6380.conf

修改对应的端口和pid配置

然后加入slaveof 127.0.0.1 6379

port 6379
修改为:
port 6380
pidfile /usr/local/redis/redis_6379.pid
修改为:
pidfile /usr/local/redis/redis_6380.pid
增加一行:
slaveof 127.0.0.1 6379

10、启动2个redis实例

/usr/local/redis/bin/redis-server /usr/local/redis/conf/6379.conf 
/usr/local/redis/bin/redis-server /usr/local/redis/conf/6380.conf 

11、启动redis客户端

去连接6379那个实例

cd /usr/local/redis/bin/
./redis-cli -h 127.0.0.1 -p 6379

连上之后输入:info命令

可以从中看到很多信息,比如:

role:master #本机是『主』
connected_slaves:1 #有1个『奴隶』
slave0:ip=127.0.0.1,port=6380,state=online,offset=11957,lag=1
#"从"服务器iP地址和端口是

20170408104439232.png

12、新增

set name zhangsan
#读取
get name

13、然后访问6380那个实例

./redis-cli -h 127.0.0.1 -p 6380
get name

我们发现这2个实例已经完成了数据的同步。

如果我们要在从服务器写入

set name lisi
#会提示:(error) READONLY You can't write against a read only slave.
#因为从服务器只有读权限,我们做的就是redis的读写分离啊

我们这里演示是在一台机器上,分了2个端口,真实开发肯定是2台机器了,不然分离就没有意义了。

        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
            </div>


相关文章
|
8月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
560 2
|
6月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
678 25
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
797 5
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
759 6
|
7月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
9月前
|
负载均衡 NoSQL Redis
【赵渝强老师】Redis的主从复制集群
Redis主从复制是指将一台Redis服务器的数据复制到其他Redis服务器,实现数据热备份、故障恢复、负载均衡及高可用架构的基础。主节点负责写操作,从节点同步数据并可提供读服务,提升并发处理能力。
275 5
|
9月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
706 9
|
8月前
|
存储 NoSQL 算法
Redis的集群架构与使用经验
本文介绍了Redis的集群架构与使用经验,包括主从复制、哨兵集群及Cluster分片集群的应用场景与实现原理。内容涵盖Redis主从同步机制、数据分片存储方式、事务支持及与Memcached的区别,并讨论了Redis内存用尽时的处理策略。适用于了解Redis高可用与性能优化方案。
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
存储 NoSQL 算法
Redis分片集群中数据是怎么存储和读取的 ?
Redis集群采用的算法是哈希槽分区算法。Redis集群中有16384个哈希槽(槽的范围是 0 -16383,哈希槽),将不同的哈希槽分布在不同的Redis节点上面进行管理,也就是说每个Redis节点只负责一部分的哈希槽。在对数据进行操作的时候,集群会对使用CRC16算法对key进行计算并对16384取模(slot = CRC16(key)%16383),得到的结果就是 Key-Value 所放入的槽,通过这个值,去找到对应的槽所对应的Redis节点,然后直接到这个对应的节点上进行存取操作