redis
文章平均质量分 76
中科院提名者
C/C++/Java/Python领域优质创作者
前端/后端领域优质创作者
xianyu平台同名哦~有问题来找我
展开
-
redis消息队列
订阅多个频道,比如我想拿到order.queue,又想拿到order.one,为了确保该消费者一定能竞争到queue,就订阅order.queue和order.*我是先发送再订阅,所以msg1没有收到,但是订阅之后再发的msg2、msg3都被收到了,而且消费者会一直处于订阅就是接收消息状态,天生就是阻塞式的。所以一开始发布消息时没消费者订阅该频道,返回值是0,后面的是2,最后一个发布到one,只有一个消费者订阅。循环读取最新消息时可能有漏读,在处理消息时,收到了很多条,但是下次只会处理最新的,造成漏读。原创 2024-04-11 22:45:32 · 581 阅读 · 0 评论 -
缓存穿透、缓存雪崩、缓存击穿的区别
性能高,但一致性差。解决办法是缓存空对象,如果数据库不存在则将空对象存入缓存,下次再访问直接返回空值,但是如果突然新增了这么一个值到数据库,此时又会造成数据不一致,所以还有另一种解决办法,布隆过滤,简单来说就是在请求和redis之间添加一层布隆过滤器即以bit为单位的数组,数值均为0,预热缓存的同时预热布隆过滤器,每次新增值的时候都会根据id计算出3个hash值,将hash值对应的索引处的数值设置为1,这样请求会先到达布隆过滤器,如果对应的hash值均为1,则继续查询redis,否则直接返回。原创 2024-04-11 22:29:10 · 450 阅读 · 0 评论