redis去中心化原理-redis怎么去中心化(3-13-39)
更新时间:2024-06-10 分类:Redis 浏览量:2
Redis本文目录一览:
- 1、redis常见问题
- 2、Redis-Cluster
- 3、玩转Redis的高可用(主从、哨兵、集群)
- 4、Redis分布式缓存搭建
- 5、面试碰到分布式技术面试题该怎么解答?
redis常见问题
以下是Redis常见的性能问题有哪些?Master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最好不要写内存快照。
缓存击穿 缓存击穿是指一个请求要访问的数据,缓存中没有,但数据库中有的情况。这种情况一般都是缓存过期了。
Redis中的Map被误删除:在某些情况下,可能会出现误删除Map的情况,例如在操作时误执行了DEL命令或者使用了错误的键名。
Redis主从复制的性能问题,为了主从复制的速度和连接的稳定性,Slave和Master最好在同一个局域网内。关于Redis 常见的性能问题都有哪些,青藤小编就和您分享到这里了。
开启redis-benchmark压测进程 检查复制积压缓冲区内存消耗,可以看到因为缓冲区设置过大,数据量才存储190多M,Redis就无法写入了。
运维层面,我们需要对机器的各项指标增加监控,包括网络流量,在达到阈值时提前报警,及时与业务确认并扩容。
Redis-Cluster
1、redis-cluster把所有的物理节点映射到[0-16383]个 slot 上,基本上采用平均分配和连续分配的方式。
2、CLUSTER REPLICATE node_id 将当前节点设置为 node_id 指定的节点的从节点。CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。
3、在redis-cluster集群中,每一个主节点可以添加多个从节点,主节点和从节点遵循主从模式的特性。 当用户需要处理更多的读请求时,添加从节点可以扩展系统的读性能。
4、Redis集群把所有的数据映射到16384个槽中。每个key会映射为一个固定的槽,只有当节点分配了槽,才能响应和这些槽关联的键命令。通过cluster addslots命令为节点分配槽。
5、修改配置文件 在每个节点的配置文件里面增加密码选项,一定要加上 masterauth,不然 Redirected 的时候会失败。masterauth redispassword requirepass redispassword 修改后需要重启节点。
玩转Redis的高可用(主从、哨兵、集群)
1、基于以上,Redis集群方案显得尤为重要。通常有3个途径:官方Redis Cluster;通过Proxy分片;客户端分片(Smart Client)。以上三种方案各有利弊。
2、主从复制可以提高Redis集群的可用性,当主节点出现故障时,从节点可以自动或者手动替代主节点的职责,从而保证Redis集群的高可用性。
3、哨兵集群,基于主从复制模式,所有的主从配置优点,它全有。主从可以切换,故障可以转移,系统的可用性就会更好。哨兵模式就是主从模式的升级,手动到自动,更加健壮。集群容量一旦到达上限,在线扩容十分麻烦。
4、主节点会定期将数据同步到从节点中,保证数据一致性的问题。这种集群方式在运行时存在一些问题:Redis的哨兵机制就是解决主从复制存在缺陷(选举问题),解决问题保证我们的Redis高可用,实现自动化故障发现与故障转移。
Redis分布式缓存搭建
1、Redis是一个nosql数据库,可以存储key-value值。因为其底层实现中,数据读写是基于内存,速度非常快,所以常用于缓存;进而因其为独立部署的中间件,常用于分布式缓存的实现方案。常用场景有:缓存、秒杀控制、分布式锁。
2、更自然的想法是将Redis变成一个可以水平扩展的分布式缓存服务,在Codis之前,业界只有Twemproxy,但是Twemproxy本身是一个静态的分布式Redis方案,进行扩容/缩容时候对运维要求非常高,而且很难做到平滑的扩缩容。
3、而在分布式系统中又会涉及到session共享的问题,多个服务同时部署时session需要共享,Spring Session可以帮助我们实现这一功能。
4、我们今天就来实现用 Redis 来实现分布式锁,并且要学会怎么使用。准备使用 Jedis 的 jar 包,在项目中导入 jar 包。
5、RDB持久化模式:在指定时间间隔内将内存中的数据保存到磁盘中。AOF持久化模式:将所有对Redis数据库的写操作记录下来,可以通过回放这些日志文件来恢复数据库。
面试碰到分布式技术面试题该怎么解答?
1、问题-1 如果setnx执行成功,但是在expire执行的时候redis节点宕机了,在这种情况下,锁不会被释放,导致死锁。
2、第一,可以问一下关于产品的问题,比如一下产品用的什么技术,想回去了解一下,或者关于一些新的技术比如大数据、spring boot公司是怎么用的。这些问题既能让面试官有兴趣又能展现你的知识面。
3、问题:“你工作中最主要的部分是什么?”面试官是在询问你的主要任务和职责,同时在考查你是否知道你的关键绩效指标是什么以及你在工作中是不是会给予这些指标足够的重视。
4、现在干得怎么样:现在在一家IT公司担任开发工程师,主要负责软件开发和维护工作。深入了解客户需求,根据实际情况分析和解决问题,积极与团队合作,不断推出符合市场需求的高品质产品。
5、说一道常见面试题: 一个很简单的答案就是去使用 Redission 客户端。Redission 中的锁方案就是 Redis 分布式锁得比较完美的详细方案。