kafka与redis

1、
kafka是消息中间件,原理就是一个队列用来保存所有发布的消息,等到客户端一上线就推送给客户端。发布订阅模式。所有消息都保存在磁盘上。
2、redis是非关系型数据库,也有发布订阅的功能。

区别:
kafka是保存在磁盘上,一般用于性能要求不高的场景(日志)而且kafka是保存在磁盘上,一般用于数据量很大的场合。而且kafka设置消息过期时间是以segment为单位的,不能对每个消息都设置过期时间。
而redis是保存在内存上,一般用于高并发的场景,而且内存有限所以用于数据量较小的场合。redis可以对每个数据都设置自己的过期时间。
而且由于redis是保存在内存,所以服务器一旦宕机,内容丢失,安全性不好。

发布订阅中间件相比于直接发送接收的好处:
服务器TCP发送,客户端TCP接受消息,服务器和客户端之间是耦合的,必须要服务器和客户端同时在线才可以完成。
而借助于中间件,可以完成服务器和客户端之间的一个解耦。服务器直接把消息发布到kafka中间件,kafka保存下来,等到客户端上线在推送给客户端。

所有中间件的作用最主要的是完成客户端和服务器之间的解耦。不需要服务器和客户端同时在线,将消息的发送接收由同步变为异步。

redis过期删除策略
1、主动删除
对每个消息都设置一个定时器,时间到则删除此数据
2、惰性删除
每次使用get获取数据时,看key是否设置了过期时间,看有没有到时间,若过期则删除此内容,返回nil(空)
3、定期检查
设置定时器,每过一段时间对所有设置了期限的key进行检查,删除过期内容。
定期检查和惰性删除可以同时存在。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值