
Redis
文章平均质量分 86
架构攻城之路
敢拒绝,还有梦。
有qian,有闲,有成长;
有你,也有我。
展开
-
使用Redis实现关注关系
最近使用关系型数据库实现了用户之间的关注,于是思考换一种思路,使用Redis实现用户之间的关注关系。综合考虑了一下Redis的几种数据结构后,觉得可以用集合实现一下。假设“我”的ID是1,“别人”的ID是2。一、添加关注添加关注分为两步:1、将对方id添加到自己的关注列表中;2、将自己的id添加到对方的粉丝列表中:SADD 1:follow 2SADD 2:fans 1二、取消关注取消关注同样分为两步:1、将对方id从自己的关注列表中移除;2、将自己的id从对方的粉丝列表中移转载 2021-05-31 10:14:28 · 1102 阅读 · 1 评论 -
使用Redis的有序集合Zset实现排行榜功能
游戏中存在各种各样的排行榜,比如玩家的等级排名、分数排名等。玩家在排行榜中的名次是其实力的象征,位于榜单前列的玩家在虚拟世界中拥有无尚荣耀,所以名次也就成了核心玩家的追求目标。一个典型的游戏排行榜包括以下常见功能:能够记录每个玩家的分数; 能够对玩家的分数进行更新; 能够查询每个玩家的分数和名次; 能够按名次查询排名前N名的玩家; 能够查询排在指定玩家前后M名的玩家。更进一步,上面的操作都需要在短时间内实时完成,这样才能最大程度发挥排行榜的效用。由于一个玩家名次上升x位将会引起x+1位转载 2021-05-28 18:14:22 · 3823 阅读 · 0 评论 -
面试官:每秒上千订单的场景下,如何对分布式锁进行高并发优化?
目录背景引入库存超卖现象是怎么产生的?用分布式锁如何解决库存超卖问题?有没有其他方案可以解决库存超卖问题?分布式锁的方案在高并发场景下如何对分布式锁进行高并发优化?分布式锁并发优化方案有没有什么不足?该优化方案的后续改进背景引入今天给大家聊一个有意思的话题:每秒上千订单场景下,如何对分布式锁的并发能力进行优化?首先来看看这个问题的背景!前段时间有个朋友在外面面试,然后有一天找我聊说:有一个国内不错的电商公司,面试官给他出了一个场景题:假如下单时,转载 2021-04-27 10:50:07 · 478 阅读 · 0 评论 -
Redisson实现Redis分布式锁的原理分析
目录一、写在前面二、Redisson实现Redis分布式锁的底层原理1、加锁机制2、锁互斥机制3、watch dog自动延期机制4、可重入加锁机制一、写在前面现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。所以咱们这篇文章就来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理。说实话,如果在公司里落地生产环境用分布式锁的时候,一定是会用转载 2021-04-27 10:22:00 · 8746 阅读 · 0 评论 -
【面试】彻底理解 IO多路复用--Redis/Nginx
阅读本文大概需要 5 分钟。看完下面这些,高频面试题你都会答了吧目录什么是IO多路复用? 为什么出现IO多路复用机制? IO多路复用的三种实现方式 select函数接口 select使用示例 select缺点 poll函数接口 poll使用示例 poll缺点 epoll函数接口 epoll使用示例 epoll缺点 epoll LT 与 ET模式的区别 epoll应用 select/poll/epoll之间的区别 IO多路复用完整代码实现 高频面试题1、.转载 2021-03-08 10:24:38 · 1258 阅读 · 0 评论 -
【面试】Redis分布式锁原理及实现--Redisson
目录一、写在前面二、Redisson实现Redis分布式锁的底层原理(1)加锁机制(2)锁互斥机制(3)watch dog自动延期机制(4)可重入加锁机制(5)释放锁机制(6)上述Redis分布式锁的缺点三、手动实现redis分布式锁一、写在前面现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。所以咱们这篇文章就来聊聊分布式锁这块知识,具体的转载 2021-03-08 10:04:08 · 2029 阅读 · 0 评论 -
Redis为什么变慢了?常见延迟问题定位与分析
使用复杂度高的命令 存储大key 集中过期 实例内存达到上限 fork耗时严重 绑定CPU 开启AOF 使用Swap 网卡负载过高 总结 Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右。但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头雾水。很多时候,Redis出现访问延迟变大,都与我们的使用不当或运维不合..转载 2020-09-05 14:16:07 · 258 阅读 · 0 评论 -
记一次redis缓存击穿问题
前言:首先先介绍下项目环境:SpringBoot+Redis+JPA等。之所以写这篇文章是为了总结下线上的一个击穿问题,以便于对redis有更为深刻的认识和理解。这里我就不使用项目中的代码了,使用自己的测试代码来说明主要问题。一、业务场景:使用redis的理由是在用户访问量很大的时候,如果一次次去从数据库中读取数据,无疑会增加数据库的负担(重要的数据当然还是要从库中读),但对于诸如用户浏览记录或者xxx列表之类的数据,数据量是巨大的,如果从库中读显然不可行,所以考虑存到redis中,大致的流转载 2020-09-05 09:37:32 · 217 阅读 · 0 评论 -
面试官:你看过Redis数据结构底层实现吗?看完本文记得收藏!
面试中,redis也是很受面试官亲睐的一部分。我向在这里讲的是redis的底层数据结构,而不是你理解的五大数据结构。你有没有想过redis底层是怎样的数据结构呢,他们和我们java中的HashMap、List、等使用的数据结构有什么区别呢。1. 字符串处理(string)我们都知道redis是用C语言写,但是C语言处理字符串和数组的成本是很高的,下面我分别说几个例子。没有数据结构支撑的几个问题: 极其容易造成缓冲区溢出问题,比如用strcat(),在用这个函数之前必须要先给目标变量分...转载 2020-08-17 17:37:26 · 315 阅读 · 0 评论 -
SpringCloud电商秒杀微服务-Redisson分布式锁方案
一、引言:前两篇文章,介绍了:《学会Zookeeper分布式锁--让面试官对你刮目相看》《SpringBoot电商项目实战-Curator分布式锁实现》细心的读者可能发现,号主在分布式锁这条路上“越走越黑”,已经发表了好几篇相关文章了,莫慌,再学完本章,你就可以在分布式锁场景下拿着倚天剑与屠龙刀叱咤分风云了因为实际项目可能面临各种业务场景需求,需要不同的分布式锁方案,而这些...原创 2019-08-22 20:03:04 · 3526 阅读 · 14 评论