Redis学习 | 青训营后端

62 阅读4分钟

Redis是什么

Redis(Remote Dictionary Server)是一个开源的高性能键值存储数据库,通常被称为数据结构服务器,可以存储在内存中,也可以将数据持久化到磁盘上。它支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)等。

Redis应用

  • 缓存: Redis最典型的应用场景之一就是作为缓存存储,可以将频繁读取的数据存储在Redis中,加速数据访问。常用数据结构:字符串(Strings)。
  • 会话存储: 将用户会话数据存储在Redis中,用于实现无状态的Web应用,提高系统的可伸缩性。常用数据结构:哈希(Hashes)。
  • 分布式锁: Redis的原子操作可以实现分布式锁,保证多个进程或线程之间的互斥操作。常用数据结构:字符串(Strings)。
  • 计数器: 可以实现精确的计数器功能,如网站点击量统计。常用数据结构:字符串(Strings)。
  • 消息队列: 使用Redis的发布订阅模式,实现消息发布和订阅功能,用于异步处理任务和事件通知。常用数据结构:发布订阅模式。
  • 实时排行榜: 使用有序集合可以实现实时的排行榜功能,如游戏积分排行、热门文章排行等。常用数据结构:有序集合(Sorted Sets)。
  • 地理位置索引: Redis的地理位置支持可以用于存储和查询地理位置相关的数据,如附近的商店、地点等。常用数据结构:地理位置(Geo)。
  • 数据缓存: 将一些热点数据存储在Redis中,以提高数据访问速度。常用数据结构:各种适合的数据结构。
  • 限流器和计时器: 使用计时器和限流器,可以实现对请求的限制和频率控制。常用数据结构:计时器和计数器。
  • 任务队列: 将需要后台处理的任务存储在队列中,再由后台进程逐个处理,用于异步任务处理。常用数据结构:列表(Lists)。

Redis特性

  • 高性能: Redis的数据存储在内存中,因此读写速度非常快,适用于对响应时间有高要求的应用场景。
  • 持久化: Redis支持多种持久化方式,可以将数据保存到硬盘上,保证数据在重启后不丢失。包括RDB快照和AOF日志两种方式。
  • 数据类型丰富: Redis支持多种数据结构,包括字符串、哈希、列表、集合、有序集合和地理位置等,这些数据结构可以满足不同场景的需求。
  • 原子操作: Redis支持多种原子操作,保证多个操作的执行是原子的,可以用于实现分布式锁、计数器等功能。
  • 发布订阅: Redis支持发布订阅模式,可以用于实现消息发布和订阅功能,用于实现消息通知和异步处理。
  • 事务: Redis支持事务操作,通过MULTI、EXEC、WATCH等命令可以实现多个操作的原子执行。
  • 主从复制: Redis支持主从复制,可以将一个Redis实例的数据同步到其他实例,用于实现数据的备份和负载均衡。
  • 集群: Redis提供了集群模式,可以将数据分布在多个节点上,实现横向扩展和高可用性。
  • 高可用性: Redis支持主从复制、持久化和故障转移等特性,可以提供高可用的数据存储服务。
  • Lua脚本: Redis支持使用Lua脚本进行复杂的数据处理和计算。
  • LRU淘汰策略: Redis使用LRU(最近最少使用)算法来管理内存,可以自动淘汰最久没有被使用的数据。
  • 性能优化: Redis采用多线程模型,可以利用多核处理器的优势,同时还有内部的连接池和请求队列等优化措施。
  • 扩展性: Redis可以通过分片和集群来扩展数据容量和吞吐量。

学习感悟

在学习Redis的过程中,需要知道Redis是什么以及常用数据库Redis和MySQL有什么不同。还有很多需要学习了解的方面,比如Redis的持久化策略有AOF和RDB以及混合模式,Redis哨兵、集群机制等等,同样值得我们深入学习了解。