参考 :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 做消息队列