java读写redis_JAVA高并发之-Redis高性能读写分离

本文介绍了Java应用中如何实现Redis的高并发读写分离,通过设置从服务器实现数据复制,提升读取性能。重点讲解了Redis的复制机制,包括旧版的SYNC和新版的PSYNC命令,以及部分重同步的概念,帮助读者理解如何优化Redis的主从同步效率。
摘要由CSDN通过智能技术生成

60e843776b27fbfad1726d58953870ba.png

- 对读写能力进行扩展,采用读写分离方式解决性能瓶颈

运行一些额外的服务器,让它们与主服务器进行连接,然后将主服务器发送的数据副本并通过网络  进行准实时的更新(具体的更新速度取决于网络带宽)通过将读请求分散到不同的服务器上面进行处理,  用户可以从新添加的从服务器上获得额外的读查询处理能力

- redis已经发现了这个读写分离场景特别普遍,自身集成了读写分离供用户使用。我们只需在redis的配置文件里面加上一条,【slaveof host port】语句

步骤:

1创建连个文件夹如:6379 6380

2复制redis.conf到两个文件夹中

3修改6380中conf的

port 6380

daemonize yes //守护进程方式启动

slaveof 127.0.0.1 6379//作为6379的从服务

pidfile /var/run/redis_6380.pid//Pid文件名字

logfile 6380.log

4分别到两个文件夹中启动

../redis-server redis.conf

Redis读写分离是怎么做数据同步的

- 进行复制中的主从服务器双方的数据库将保存相同的数据,概念上将这种现象称作“数据库状态一致”

RDB 全量持久化 AOF (append only if) 增量持久化

- redis2.8版本之前使用旧版复制功能SYNC

* SYNC是一个非常耗费资源的操作  * 主服务器需要执行BGSAVE命令来生成RDB文件,这个生成操作会耗费主服务器大量的的CPU、内存和磁盘读写资源  * 主服务器将RDB文件发送给从服务器,这个发送操作会耗费主从服务器大量的网络带宽和流量,并对主服务器响应命令  * 请求的时间产生影响:接收到RDB文件的从服务器在载入文件的过程是阻塞的,无法处理命令请求

- 2.8之后使用PSYNC

f2ed94e2ab0047a5596f34edaf2da20a.png

- PSYNC命令具有完整重同步(full resynchronization)和部分重同步(partial resynchronization1)两种模式

* 部分重同步功能由以下三个部分构成:    * 主服务的复制偏移量(replication offset)和从服务器的复制偏移量    * 主服务器的复制积压缓冲区(replication backlog),默认大小为1M    * 服务器的运行ID(run ID),用于存储服务器标识,如从服务器断线重新连接,取到主服务器的运行ID与重接后的主服务器运行ID进行对比,从而判断是执行部分重同步还是执行完整重同步

a274889b291f37364c7700e63ee5933e.png

技术之家希望本篇文章对你有用!!

欢迎来到技术之家,

如需转载,烦请保留本文链接和出处:http://www.jszja.com/contents/14/1455.html

您的支持将是我们前进的动力!如对本篇文章有疑问或建议,请通过本站下方邮箱联系我们,让技术之家每天进步一点点!(●'◡'●)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值