参考 :About - Redis

1. Redis是什么

  • Redis是一个开源的运行在计算机内存中的单线程数据存储系统。

  • 它也是一个键值(KV)存储系统,这意味着数据是以键值对的形式存储的。

2. 解决什么问题

  • Redis常用于解决需要快速访问数据的问题,如缓存(提高数据访问速度)、消息中转(在不同的系统或组件之间传递消息)、数据流引擎(处理实时数据流)。

  • redis 由于是单线程的所以事务操作是原子的,可以用来处理一些计数类型的任务,即需要保序的任务比如点赞、访问次数、库存。

3. 支持的数据结构

  • Redis提供了多种数据结构,包括字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets with range queries)、位图(bitmaps)、超日志(hyperloglogs)、流(streams)、地理空间索引(geospatial indexes)。

4. 特性

  • 支持集群同步(主从同步)。

  • 支持Lua脚本,以实现复杂的数据处理逻辑。

  • 支持LRU(最近最少使用)淘汰策略。

  • 支持事务,保持数据的一致性。

  • 支持不同级别的磁盘持久化(数据持久化)。

  • 通过Redis Sentinel提供高可用性,监控Redis服务器状态,实现故障转移/灾备。

  • 通过Redis Cluster实现自动分区,这是一个分布式系统,可以将数据自动分配到多个节点上,以提高系统的可扩展性和容错性。

5.Redis 常用得业务场景有哪些?

  • 热点数据得旁路缓存

  • 利用SET k-v EX/PEX 参数 做限时类业务实现

  • SETNX 分布式锁实现

  • 计数器实现

  • Zset排行榜实现

  • list、pub-sub、stream 做消息队列