Redis最主要的功能就是拿来做缓存,来提升系统的性能,但是除了做缓存以外,他还能做很多事(但是,能做并不代表就适合,并不代表就一定要用它):
消息队列(不建议):Redis 支持发布/订阅模式和Stream,可以作为轻量级消息队列使用,用于异步处理任务或处理高并发请求。
延迟消息(不建议):Redis的ZSET可以用来实现延迟消息,也可以基于Key的过期消息实现延迟消息,还可以借助Redisson的RDelayQueue来实现延迟消息,都是可以的。
排行榜(建议):利用Redis 的有序集合和列表结构,可以成为设计实时排行榜的绝佳选择,例如各类热门排行榜、热门商品列表等。
计数器(建议):基于Redis可以实现一些计数器的功能,比如网站的访问量、朋友圈点赞等。通过 incr 命令就能实现原子性的自增操作,从而实现一个全局计数器。·
分布式ID(可以):因为他有全局自增计数的功能,所以在分布式场景,我们也可以利用Redis来实现一个分布式ID来保障全局的唯一且自增。
分布式锁(建议):Redis 的单线程特性可以保证多个客户端之间对同一把锁的操作是原子性的,可以轻松实现分布式锁,用于控制多个进程对共享资源的访问。
地理位置应用(建议):Redis 支持GEO,支持地理位置定位和查询,可以存储地理位置信息并通过 Redis 的查询功能获取附近的位置信息。比如"附近的人"用它来实现就非常方便。
分布式限流(可以):Redis提供了令牌桶和漏桶算法的实现,可以用于实现分布式限流。
分布式Session(建议):可以使用Redis实现分布式Session管理,保证多台服务器之间用户的会话状态同步。
布隆过滤器(建议):Redis提供了布隆过滤器(Bloom Filter)数据结构的实现,可以高效地检测一个元素是否存在于一个集合中
状态统计(数据量大建议用):Redis中支持BitMap这种数据结构,它不仅查询和存储高效,更能节省很多空间,所以我们可以借助他做状态统计,比如记录亿级用户的登录状态,或者是那他来做签到统计也比较常见。
共同关注(建议):Redis中支持Set集合类型,这个类型非常适合我们做一些取并集、交集、差集等,基于这个特性,我们就能去交集的方式非常方便的实现共同好友、或者共同关注的功能。
推荐关注(可以):和上面的共同关注类似,交集实现共同好友,那么并集或者差集就能实现推荐关注的功能。