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

相关推荐
傻啦嘿哟26 分钟前
Python安全实践:使用加密的XML配置文件保护敏感数据
数据库·oracle
一 乐34 分钟前
人事管理系统|基于Springboot+vue的企业人力资源管理系统设计与实现(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot·后端
SelectDB39 分钟前
浙江头部城商行:每日 700 万查询、秒级响应,Apache Doris 查算分离架构破局资源冲突
数据库·后端·apache
why1511 小时前
面经整理——算法
java·数据结构·算法
猫猫虫。1 小时前
解决数据库慢查询
数据库
zyxqyy&∞1 小时前
mysql代码小练-3
数据库·mysql
dzl843941 小时前
HikariCP 数据库连接池配置
数据库
万邦科技Lafite1 小时前
一键获取淘宝关键词商品信息指南
开发语言·数据库·python·商品信息·开放api·电商开放平台
程序猿20231 小时前
MySQL的索引
数据库·mysql
m0_692540071 小时前
数据库表设计规范
数据库·oracle