Redis
文章平均质量分 92
玄狸
辣鸡学生一枚,随便写点东西。
展开
-
Redis学习笔记【实战篇--达人探店和好友关注】
假设在t1 时刻,我们去读取第一页,此时page = 1 ,size = 5 ,那么我们拿到的就是10~6 这几条记录,假设现在t2时候又发布了一条记录,此时t3 时刻,我们来读取第二页,读取第二页传入的参数是page=2 ,size=5 ,那么此时读取到的第二页实际上是从6 开始,然后是6~2 ,那么我们就读取到了重复的数据,所以feed流的分页,不能采用原始方案来做。我们本次针对好友的操作,采用的就是Timeline的方式,只需要拿到我们关注用户的信息,然后按照时间排序即可。原创 2024-05-31 17:27:00 · 737 阅读 · 0 评论 -
Redis学习笔记【实战篇--Redis消息队列】
使用队列的好处在于 **解耦:**所谓解耦,举一个生活中的例子就是:快递员(生产者)把快递放到快递柜里边(Message Queue)去,我们(消费者)从快递柜里边去拿东西,这就是一个异步,如果耦合,那么这个快递员相当于直接把快递交给你,这事固然好,但是万一你不在家,那么快递员就会一直等你,这就浪费了快递员的时间,所以这种思想在我们日常开发中,是非常有必要的。等等,但是呢,如果没有安装mq,我们也可以直接使用redis提供的mq方案,降低我们的部署和学习成本。这里我们可以使用一些现成的mq,比如。原创 2024-05-31 17:06:49 · 1006 阅读 · 0 评论 -
Redis学习笔记【实战篇--秒杀优化】
秒杀业务的优化思路是什么?原创 2024-05-31 16:53:32 · 550 阅读 · 0 评论 -
Redis学习笔记【实战篇--分布式锁-redission】
重入问题重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中可重入锁的意义在于防止死锁,比如HashTable这样的代码中,他的方法都是使用synchronized修饰的,假如他在一个方法内,调用另一个方法,那么此时如果是不可重入的,不就死锁了吗?所以可重入锁他的主要意义是防止死锁,我们的synchronized和Lock锁都是可重入的。不可重试:是指目前的分布式只能尝试一次,我们认为合理的情况是:当线程在获得锁失败后,他应该能再次尝试获得锁。超时释放:我们在加锁时增加了过期时间,这样的我们。原创 2024-05-31 16:41:14 · 836 阅读 · 0 评论 -
Redis学习笔记【实战篇--优惠卷秒杀】
利用set nx ex获取锁,并设置过期时间,保存线程标示释放锁时先判断线程标示是否与自己一致,一致则删除锁特性:利用set nx满足互斥性利用set ex保证故障时锁依然能释放,避免死锁,提高安全性利用Redis集群保证高可用和高并发特性笔者总结:我们一路走来,利用添加过期时间防止死锁问题的发生,但是有了过期时间之后,可能出现误删别人锁的问题,这个问题我们开始是利用删之前通过拿锁,比锁,删锁这个逻辑来解决的,也就是删之前判断一下当前这把锁是否是属于自己的,但是现在还有原子性问题,原创 2024-05-31 15:33:57 · 1006 阅读 · 0 评论 -
Redis学习笔记【实战篇--商户查询缓存】
前言什么是缓存?举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样;同样,实际开发中,系统也需要"避震器",防止过高的数据访问猛冲系统,导致其操作线程无法及时处理信息而瘫痪;这在实际开发中对企业讲,对产品口碑,用户评价都是致命的;所以企业非常重视缓存技术;缓存(Cache),就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据。原创 2024-05-31 10:11:05 · 1034 阅读 · 0 评论 -
Redis学习笔记【实战篇--短信登录】
在这个方案中,他确实可以使用对应路径的拦截,同时刷新登录token令牌的存活时间,但是现在这个拦截器他只是拦截需要被拦截的路径,假设当前用户访问了一些不需要拦截的路径,那么这个拦截器就不会生效,所以此时令牌刷新的动作实际上就不会执行,所以这个方案他是存在问题的。原创 2024-05-30 17:36:48 · 1060 阅读 · 0 评论 -
Redis学习笔记【基础篇】
这样以来,我们就可以把不同类型的数据区分开了。从而避免了key的冲突问题。HSET key field value:添加或者修改hash类型key的field的值。获取sorted set 中的指定元素的排名:ZRANK key member。HGET key field:获取一个hash类型key的field的值。通过给key添加前缀加以区分,不过这个前缀不是随便加的,有一定的规范。HMSET:批量添加多个hash类型key的field的值。HMGET:批量获取多个hash类型key的field的值。原创 2024-05-30 15:55:30 · 1240 阅读 · 0 评论