Fork me on GitHub

Redis使用场景

计数器

可以对 String 进行自增自减运算,从而实现计数器功能。

Redis 这种内存型数据库的读写性能非常高,很适合存储频繁读写的计数量。

缓存

将热点数据放到内存中:

设置内存的最大使用量以及淘汰策略来保证缓存的命中率;

通过设置过期时间来实现缓存的过期失效。

查找表

例如 DNS 记录就很适合使用 Redis 来存储。

查找表和缓存类似,也是利用了 Redis 快速的查找特性。但是查找表的内容不能失效,而缓存的内容可以失效,因为缓存不作为可靠的数据来源。

消息队列

List 是一个双向链表,可以通过 lpush 和 rpop 写入和读取消息

不过最好使用 Kafka、RabbitMQ 等消息中间件。

会话缓存

可以使用 Redis 来统一存储多台应用服务器的会话信息。

当应用服务器不再存储用户的会话信息,也就不再具有状态,一个用户可以请求任意一个应用服务器,从而更容易实现高可用性以及可伸缩性。

分布式锁

在分布式场景下,无法使用单机环境下的锁来对多个节点上的进程同步。

可以使用 Redis 自带的 SETNX 命令实现分布式锁,除此之外,还可以使用官方提供的 RedLock 分布式锁实现。

其他

Set 可以实现交集、并集等操作,从而实现共同好友等功能;

ZSet 可以实现有序性操作,从而实现排行榜等功能

-------------本文结束感谢您的阅读-------------