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 届应届毕业生。欢迎关注,持续分享,包括但不限于技术文章。全网同名...

相关推荐
田野追逐星光5 分钟前
堆的应用(讲解超详细)
数据结构
也许明天y15 分钟前
Spring Cloud Gateway 自定义分布式限流
redis·后端·spring cloud
kk在加油29 分钟前
Redis数据安全性分析
数据库·redis·缓存
谭林杰33 分钟前
散链表基本操作讲解
数据结构·链表
yi.Ist42 分钟前
数据结构 —— 栈(stack)在算法思维中的巧妙运用
开发语言·数据结构
DolphinDB1 小时前
更高效的因子研究工具:基于 DolphinDB 的因子评价框架详解
数据库
此乃大忽悠1 小时前
身份认证缺陷
java·数据库·webgoat·身份认证缺陷
IT项目管理2 小时前
达梦数据库DMDRS搭建单向dm8-dm8数据同步
数据库
祁思妙想2 小时前
【LeetCode100】--- 1.两数之和【复习回滚】
数据结构·算法·leetcode
橘颂TA2 小时前
【C++】红黑树的底层思想 and 大厂面试常问
数据结构·c++·算法·红黑树