
redis
qq_43193797
github:https://github.com/yanjie666
展开
-
Redis集群重新分片(新增/移除节点)【理论】
redis集群重新分片原理:(增加或移除节点)以增加节点为例: 我们只需要将已经分配给节点的哈希槽(hash slot),重新分配即可。 注:hash slot重新分配时,如果槽中存在key-value,那么key-value也将一起被分配出去。 例如: node1的哈希槽:0-5000 node2的哈希槽:5001-10000 n...转载 2018-11-29 23:15:35 · 1136 阅读 · 0 评论 -
redis的主从复制总结
redis主从复制原理:在Slave启动并连接到Master后,将主动发送SYNC命令。此后Master将启动后台存盘进程,将数据库快照保存到文件中,同时收集新的写命令(增、删、改)并缓存起来,在后台进程执行写文件。完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其存盘并加载到内存恢复数据库快照到slave上。此后,Mas...转载 2019-01-11 15:19:54 · 167 阅读 · 0 评论 -
分布式锁的几种实现方式
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需要牺牲强一致...转载 2018-12-23 13:24:27 · 156 阅读 · 0 评论 -
redis分布式锁实现秒杀业务
一、业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。二、一些可能的实现 刚才提到过,实现秒杀的关键点是控制线程对资源的争抢,根据基本的线程知识,可以不加思索的想到下面的一些方法:1)、秒杀...转载 2018-12-22 16:31:47 · 127 阅读 · 0 评论 -
单进程单线程的Redis如何能够高并发
参考文档: (1)http://yaocoder.blog.51cto.com/2668309/888374 (2)http://www.cnblogs.com/syyong/p/6231326.html1、基本原理 采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗) (1)为什么不采用多进程或多线程处理?1、基本原理 采用多路 I/O 复...转载 2018-12-21 18:38:41 · 260 阅读 · 0 评论 -
redis锁机制
1 悲观锁 执行操作前假设当前的操作肯定(或有很大几率)会被打断(悲观)。基于这个假设,我们在做操作前就会把相关资源锁定,不允许自己执行期间有其他操作干扰。Redis不支持悲观锁。Redis作为缓存服务器使用时,以读操作为主,很少写操作,相应的操作被打断的几率较少。不采用悲观锁是为了防止降低性能。 2 乐观锁执行操作前假设当前操作不会被打断(乐观)。基于这个假设,我们在做操...原创 2018-12-21 16:38:04 · 771 阅读 · 0 评论 -
redis事物,锁机制,分布式锁机制
前言:在我们做的商城项目中,为了实现在多Tomcat集群环境下定时关单(用户2小时未支付订单则需要取消订单),需要分布式锁。由于定时关单是周期性的执行某个函数(可以使用Spring Schedule实现),多Tomcat集群环境下,会造成同一时间多个Tomcat同时执行关单任务,造成不必要的资源消耗,所以引入了分布式锁的概念(互斥锁)(注意:分布式锁应用非常广,还可以应用在秒杀业务,解...转载 2018-12-21 16:16:15 · 250 阅读 · 0 评论 -
redis的主从复制
1. 主从简介配置多台Redis服务器,以主机和备机的身份分开。主机数据更新后,根据配置和策略,自动同步到备机的master/salver机制,Master以写为主,Slave以读为主,二者之间自动同步数据。目的:读写分离提高Redis性能;避免单点故障,容灾快速恢复原理: 每次从机联通后,都会给主机发送sync指令,主机立刻进行存盘操作,发送RDB文件...原创 2018-12-21 11:52:04 · 174 阅读 · 1 评论 -
redis持久化
1. RDB1.1 RDB简介RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。工作机制:每隔一段时间,就把内存中的数据保存到硬盘上的指定文件中。RDB是默认开启的!Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持...原创 2018-12-21 10:48:52 · 136 阅读 · 0 评论 -
redis常见面试题
1.什么是redis? Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最...转载 2018-12-21 10:42:05 · 152 阅读 · 0 评论 -
redis cluster集群
1.Redis群集TCP端口每个Redis群集的节点都需要打开两个TCP连接,由于这两个连接就需要两个端口,分别是用于为客户端提供服务的常规Redis TCP命令端口(例如6379)以及通过将10000和命令端口相加(10000+6379)而获得的端口,就是集群端口(例如16379)。第二个大号端口用于群集总线,即使用二进制协议的节点到节点通信通道。 节点使用群集总线进行故障检测,配置更新,故...原创 2018-11-30 09:11:14 · 306 阅读 · 0 评论 -
Redis Cluster
1.1 Redis-Cluster简介1.1.1 什么是Redis-Cluster为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集...原创 2018-11-24 16:32:38 · 157 阅读 · 0 评论 -
redis主从复制之新增节点实现数据同步原理
在Slave启动并连接到Master后,将主动发送SYNC命令。此后Master将启动后台存盘进程,将数据库快照保存到文件中,同时收集新的写命令(增、删、改)并缓存起来,在后台进程执行写文件。完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其存盘并加载到内存恢复数据库快照到slave上。此后,Master继续将所有已经收集到的...原创 2019-01-11 17:08:58 · 1030 阅读 · 0 评论