Redis是什么、使用场景、五大基本数据结构

小明 2025-05-05 01:10:23 5

文章目录

  • Redis是什么、使用场景
  • redis的常见的五个数据类型
  • ���结

    Redis是什么、使用场景

    Redis是一种开源的高性能键值数据库,也是常说的 NOSQL 它通常被用来作为内存中的数据结构存储,支持多种类型的数据结构,如字符串(Strings)、哈希表(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)以及位图(Bitmaps)、Redis FEO等等。

    ()

    因为 Redis 是将数据存储在内存中的,而 MySQL 数据库是将数据存储在磁盘中,所以 Redis 的性能 QPS(每秒处理请求时间)是MySQL 的十倍。

    由于其高速的读写能力,Redis通常用于以下场景:

    ()
    1. 缓存(Caching):Redis是一个高性能的内存数据存储系统,经常被用作缓存解决方案,可以显著减少后端数据库的读取压力,提高应用的响应速度。

    2. 会话存储(Session Store):Redis可以用来存储用户会话信息,比如存储 Session 实现登录态的存储。

    3. 消息队列(Message Broker):Redis的发布/订阅(pub/sub)模式和列表(Lists)数据结构使其可以作为消息队列系统使用,进行消息的发送和异步处理。

    4. 实时分析:例如,用有序集合(Sorted Sets)来存储排行榜数据

    5. 地理空间数据存储:Redis GEO 具备地理空间数据支持,可以用来构建地理位置服务。

    6. 持久化存储:虽然Redis是基于内存的,但它支持持久化功能,可以将内存中的数据保存到磁盘中,保证数据的持久性。

    7. 分布式锁:Redis 可以提供分布式锁的机制,保证分布式系统中进程与线程之间的同步、常见的分布式锁有 Redisson。

    由于Redis的这些特性,它被广泛应用在小到个人项目,大到企业级应用中,帮助提升系统性能,提供更加快速的数据访问体验。

    redis的常见的五个数据类型

    redis的常见的五个数据类型:String,Lists,sets,sorted sets,hashes。

    1. String(字符串):

      - String是Redis中最基本的数据类型,一个 key 对应一个 value,value 可以是字符串

      常用场景: 缓存用户个人信息或者存储临时性的信息,比如验证码,登录 session。

    2. Lists(列表):

      - Lists是简单的字符串列表,按插入顺序排序,你可以添加一个元素到头部(左边)或者尾部(右边)。

      常用场景:实现最新消息排行等功能(将最新的内容推入列表)。任务队列,如消息队列(先进先出)。

    3. Sets(集合):

      - Sets是字符串的无序集合。它是通过HashTable实现的,所以添加、删除、查找的复杂度都是O(1)。

      常用场景:计算点赞数、共同关注等等,因为集合可以快速地进行交集、并集、差集等操作。

    4. Sorted Sets(有序集合):

      - Sorted Sets是将 Set 中的元素增加一个权重参数 score,使集合中的元素能够按 score 进行有序排列。score 跟元素本身就类似与key、Value 的状态。

      常用场景: 排行榜应用,如游戏排行榜。

    5. Hashes(哈希):

      - Hashes是键值对集合,是一个string类型的field和value的映射表,适合存储对象。

    6. 常用场景:存储对象数据,如用户信息、配置信息等。还有购物车应用,其中field是商品ID,value是商品信息。

    总结

    这些数据类型各有特点,可以根据不同的应用场景选择适合的数据结构。例如,如果需要简单的存储临时的数据,可以使用 String 。如果需要保持元素的插入顺序,则选择List类型;如果需要唯一元素且不需要排序,就选择Set类型;如果需要全局排序,可以选择 Sorted Set类型;而如果需要存储对象,则Hash类型可能是更合适的选择。在实际应用中,这些数据类型往往可以相互结合,为复杂的应用场景提供强大的数据支持。


    有启发点个赞 🌹

    预计下篇分享:Redis 线程模型或 Redis 持久化

    本篇参考:小林coding ,JavaGuide

    我是小辉,正在进行 Java 实习的 24 届应届毕业生。欢迎关注,持续分享,包括但不限于技术文章。全网同名…

The End
微信