文章目录
Redis是什么、使用场景
Redis是一种开源的高性能键值数据库,也是常说的 NOSQL 它通常被用来作为内存中的数据结构存储,支持多种类型的数据结构,如字符串(Strings)、哈希表(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)以及位图(Bitmaps)、Redis FEO等等。
因为 Redis 是将数据存储在内存中的,而 MySQL 数据库是将数据存储在磁盘中,所以 Redis 的性能 QPS(每秒处理请求时间)是MySQL 的十倍。
由于其高速的读写能力,Redis通常用于以下场景:
-
缓存(Caching):Redis是一个高性能的内存数据存储系统,经常被用作缓存解决方案,可以显著减少后端数据库的读取压力,提高应用的响应速度。
-
会话存储(Session Store):Redis可以用来存储用户会话信息,比如存储 Session 实现登录态的存储。
-
消息队列(Message Broker):Redis的发布/订阅(pub/sub)模式和列表(Lists)数据结构使其可以作为消息队列系统使用,进行消息的发送和异步处理。
-
实时分析:例如,用有序集合(Sorted Sets)来存储排行榜数据
-
地理空间数据存储:Redis GEO 具备地理空间数据支持,可以用来构建地理位置服务。
-
持久化存储:虽然Redis是基于内存的,但它支持持久化功能,可以将内存中的数据保存到磁盘中,保证数据的持久性。
-
分布式锁:Redis 可以提供分布式锁的机制,保证分布式系统中进程与线程之间的同步、常见的分布式锁有 Redisson。
由于Redis的这些特性,它被广泛应用在小到个人项目,大到企业级应用中,帮助提升系统性能,提供更加快速的数据访问体验。
redis的常见的五个数据类型
redis的常见的五个数据类型:String,Lists,sets,sorted sets,hashes。
-
String(字符串) :
- String是Redis中最基本的数据类型,一个 key 对应一个 value,value 可以是字符串
常用场景: 缓存用户个人信息或者存储临时性的信息,比如验证码,登录 session。
-
Lists(列表) :
- Lists是简单的字符串列表,按插入顺序排序,你可以添加一个元素到头部(左边)或者尾部(右边)。
常用场景:实现最新消息排行等功能(将最新的内容推入列表)。任务队列,如消息队列(先进先出)。
-
Sets(集合) :
- Sets是字符串的无序集合。它是通过HashTable实现的,所以添加、删除、查找的复杂度都是O(1)。
常用场景:计算点赞数、共同关注等等,因为集合可以快速地进行交集、并集、差集等操作。
-
Sorted Sets(有序集合) :
- Sorted Sets是将 Set 中的元素增加一个权重参数 score,使集合中的元素能够按 score 进行有序排列。score 跟元素本身就类似与key、Value 的状态。
常用场景: 排行榜应用,如游戏排行榜。
-
Hashes(哈希) :
- Hashes是键值对集合,是一个string类型的field和value的映射表,适合存储对象。
-
常用场景:存储对象数据,如用户信息、配置信息等。还有购物车应用,其中field是商品ID,value是商品信息。
总结
这些数据类型各有特点,可以根据不同的应用场景选择适合的数据结构。例如,如果需要简单的存储临时的数据,可以使用 String 。如果需要保持元素的插入顺序,则选择List类型;如果需要唯一元素且不需要排序,就选择Set类型;如果需要全局排序,可以选择 Sorted Set类型;而如果需要存储对象,则Hash类型可能是更合适的选择。在实际应用中,这些数据类型往往可以相互结合,为复杂的应用场景提供强大的数据支持。
有启发点个赞 🌹
预计下篇分享:Redis 线程模型或 Redis 持久化
本篇参考:小林coding ,JavaGuide
我是小辉,正在进行 Java 实习的 24 届应届毕业生。欢迎关注,持续分享,包括但不限于技术文章。全网同名...