redis
文章平均质量分 70
zhifeng687
这个作者很懒,什么都没留下…
展开
-
redis cluster的raft算法选主流程
5. Redis Cluster 故障转移上面已经介绍过单机模式的故障转移(主节点下线后,对应从节点升主并替代原主节点继续工作)过程,单机模式下故障转移需要 Sentinel 系统的辅助,与之不同,Redis 集群模式故障转移并不需要 Sentinel 系统辅助,而是通过集群内部主节点选举完成,是一个“自治”的系统。Redis Cluster 的故障转移可划分为三大步骤:故障检测、从节点选举以及故障倒换,以下详细介绍。5.1 故障检测故障检测需要经历单节点视角检测、检测信息传播、下线判决三个翻译 2018-04-24 18:33:13 · 2134 阅读 · 0 评论 -
redis集群选举机制
集中式集群和分片式集群Redis节点之间使用的是gossip协议进行通信,每个节点之间都会互相通信。gossip协议包含多种消息,包括ping,pong,meet,fail等等。ping:每个节点都会频繁给其他节点发送ping,其中包含自己的状态还有自己维护的集群元数据,互相通过ping交换元数据; pong:返回ping和meet,包含自己的状态和其他信息,也可以用于信息广播和更新; fail:某个节点判断另一个节点fail之后,就发送fail给其他节点,通知其他节点,指定的节..转载 2016-02-27 19:14:18 · 977 阅读 · 0 评论 -
Redis Cluster原理
Redis 缓存作为使用最多的缓存工具被各大厂商争相使用。通常我们会使用单体的 Redis 应用作为缓存服务,为了保证其高可用还会使用主从模式(Master-Slave),又或者是读写分离的设计。但是当缓存数据量增加以后,无法用单体服务器承载缓存服务时,就需要对缓存服务进行扩展。将需要缓存的数据切分成不同的分区,将数据分区放到不同的服务器中,用分布式的缓存来承载高并发的缓存访问。恰好 Redis Cluster 方案刚好支持这部分功能。今天就来一起看看 Redis Cluster 的核心原理和实转载 2015-08-08 17:07:58 · 410 阅读 · 0 评论 -
Redis持久化之RDB原理
一、为什么需要持久化redis里有10gb数据,突然停电或者意外宕机了,再启动的时候10gb都没了?!所以需要持久化,宕机后再通过持久化文件将数据恢复。二、优缺点1、rdb文件rdb文件都是二进制,很小。比如内存数据有10gb,rdb文件可能就1gb,只是举例。2、优点由于rdb文件都是二进制文件,所以很小,在灾难恢复的时候会快些。他的效率(主进程处理命令的效率,而不是持久化的效率)相对于aof要高(bgsave而不是save),因为每来个请求他都不会处理任何事,只是bgsave的时候他会转载 2022-04-07 21:31:04 · 1583 阅读 · 0 评论 -
Redis五种数据类型的底层数据结构
原创 2017-04-20 10:31:17 · 1622 阅读 · 0 评论 -
Redisson 分布式锁的watch dog自动续期机制
背景据Redisson官网的介绍,Redisson是一个Java Redis客户端,与Spring 提供给我们的 RedisTemplate 工具没有本质的区别,可以把它看做是一个功能更强大的客户端(虽然官网上声称Redisson不只是一个Java Redis客户端)我想我们用到 Redisson 最多的场景一定是分布式锁,一个基础的分布式锁具有三个特性:互斥:在分布式高并发的条件下,需要保证,同一时刻只能有一个线程获得锁,这是最最基本的一点。 防止死锁:在分布式高并发的条件下,比如有个线程获转载 2018-03-21 20:13:57 · 29917 阅读 · 7 评论 -
redis分布式锁的实现(setNx命令和Lua脚本)
前言本篇文章主要介绍基于Redis的分布式锁实现到底是怎么一回事,其中参考了许多大佬写的文章,算是对分布式锁做一个总结分布式锁概览在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用synchronized语法和ReetrantLock去保证,这实际上是本地锁的方式。但是现在公司都是流行分布式架构,在分布式环境下,如何保证不同节点的线程同步执行呢?实际上,对于分布式场景,我们可以使用分布式锁,它是控制分布式系统之间互斥访问共享资源的一种方式。比如说转载 2016-05-27 13:31:06 · 83812 阅读 · 0 评论 -
Redis五大数据结构使用场景
Redis是一种基于键值对的NoSQL数据库,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成,除此之外还支持一些其他的数据结构和算法。key都是由字符串构成的,那么这五种数据结构的使用场景有哪些?一起来看看!一 字符串字符串类型是Redis最基础的数据结构,字符串类型可以是JSON、XML甚至是二进制的图片等数据,但是最大值不能超过512MB。1.1 内部编码Redis会根据当前值的类型和长度决定使用哪种内部编转载 2017-01-09 11:06:35 · 14035 阅读 · 0 评论 -
redis 数据淘汰策略
转载自:《redis学习》-- 缓存淘汰策略redisredis缓存淘汰策略失效的内部实现passive way 消极方法Active Way缓存淘汰策略参考:Redis 内存淘汰机制 深入理解Redis主键失效原理及实现机制认识最大缓存在 redis 中,允许用户设置最大使用内存大小 server.maxmemory,默认为0,没有指定最大缓存,如果有新的数据添加,超过最大内存,则会使redi...转载 2018-05-30 16:19:55 · 818 阅读 · 1 评论 -
redis 数据过期策略
本文对Redis的过期机制简单的讲解一下 讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了Redis会自己回收清理不用的数据吗?如果能,那如何配置?如果不能,如何防止数据累加后大量占用存储空间的问题? 之前一直接触Redis不...转载 2018-05-30 16:24:34 · 520 阅读 · 0 评论 -
解决redis缓存穿透和缓存雪崩
一.缓存穿透: 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决办法: 1.布隆过滤 对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。还有最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一...原创 2018-06-27 17:05:12 · 6529 阅读 · 1 评论