Redis常见问题总结

举报
小小张自由--张有博 发表于 2022/05/23 11:56:14 2022/05/23
【摘要】 Redis常见问题总结

1)redis主从节点是长连接还是短连接?

长连接

2)怎么判断redis某个节点是否正常工作

一般集群判断节点是否正常工作,常用的方法都是通过互相的ping-pong心跳检测机制,如果有一半以上的节点去ping一个节点的时候没pong回应,集群就会认为这个节点宕机,会断掉这个节点的连接。

redis主节点默认每隔10s发送一次心跳-一判断从节点是否在线。

redis从节点每隔1s发送一次心跳一给主节点发送自己的复制偏移量,从主节点获取到最新的数据变更命令,还做一件事情就是判断主节点是否在线。

3)过期key如何处理

主节点处理了一个key或者通过淘汰算法淘汰了一个key,这个时候主节点模拟一条del命令发送给从节点,从节点接收到命令删除key。

4)redis是同步复制还是异步复制

redis主节点每次接收到写命令之后,先写到内部的缓冲区,然后异步发送给从节点。

5)redis除了做缓存,还可以用来做什么?

答:分布式锁、防重提交、分布式限流、简易版本的消息队列、延迟任务、session共享(

集成spring-session-data-redis)

6)redis锁如何保证任何时刻有且只有一个线程持有这个锁?

答:使用命令:setnx key value key不存在时设置成功返回值ok,key存在设置失败,也可以采用If(!redisUtil.get(key)set key value},不过这段代码需要采用Iua脚本实现来保证原子性。

7)如何保证分布式锁不产生死锁?

答给锁设置一个合理的过期时间,业务执行过程中节点异常宕机,有个兜底终止跳出方案使用命令:setnx key value ex seconds设置key和对应的过期时间,到了指定的ex时间,锁自动释放。

8)如何防止释放别的线程锁?

使用UUID或者雪花算法

9)分布式锁选用redis与Zookeeper的区别

1)redis分布式锁(推荐)互联网项目并发量高,对性能要求高,比较推荐。

redis常见操作,例如基本类型string、hash、Iist、set等等操作可以采用jedis或lettuce。

对于跟分布式锁相关的操作集成redission。

2)分布式锁百分百可靠可以选用Zookeeper作为分布式锁。采用cap理论中的cp模型保证高可靠性。

一般的项目我们可以结合不同的场景,同时兼容两种分布锁的实现。

10)什么是 redis 热 key

在 Redis 中,热 key 是指那些在极短的时间内访问频次非常高的 key



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。