Redis入门01-简单了解

目录

Redis的发展历史

特性简介

数据类型

内存存储与持久化

功能丰富

简单稳定

应用场景

为啥用Redis



Redis入门01-简单了解_第1张图片

Redis的发展历史

Redis(Remote Dictionary Server)是一个高性能的键值存储系统,通常用作缓存、消息队列和分布式数据存储的解决方案。以下是Redis的发展历史(每一段中都涵盖了标签:轻量级键值存储、持久性和复制、分布式的数据分片和高可用、Sentinel自动故障切换、多线程和延迟队列、懒惰删除和集群自动重平衡):

  1. 2009年:创建和初期开发 Redis是由Salvatore Sanfilippo(也被称为Antirez)创建的。最早的版本于2009年发布。Redis最初是为提供快速、轻量级的键值存储解决方案而设计的。

  2. 2010年:稳定版发布 Redis在2010年发布了稳定版本1.0,此时已经引起了广泛的关注和使用。Redis的持久性、复制和分片功能逐渐加入。

  3. 2012年:Redis Cluster发布 2012年,Redis 2.8版本引入了Redis Cluster,这是一个分布式的Redis解决方案,支持数据分片和高可用性。

  4. 2015年:Redis发布3.0 Redis 3.0引入了Sentinel,这是一个用于监控和自动故障切换的工具,以提供更高的可用性。此版本还引入了新的二进制位操作和地理信息支持。

  5. 2018年:Redis发布5.0 Redis 5.0引入了多线程模型,以提高性能。它还引入了流数据结构、延迟队列以及其他新特性。

  6. 2021年:Redis发布6.0 Redis 6.0增加了更多的新功能,包括懒惰删除、集群自动重平衡等。此版本进一步增强了Redis的性能和功能。

特性简介

Redis是一种基于键值对(Key-value)的NoSql数据库。它以字典结构存储数据。

数据类型

redis中的value⽀持string(字符串)、hash(哈希)、 list(列表)、set(集 合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据类型。

其中最常见的有5种数据类型应用场景:

  • string(字符串):缓存功能、计数、共享Session、限速(高并发场景下控制请求数量)

  • hash(哈希):缓存用户信息、缓存对象

  • list(列表):消息队列、文章列表

  • set(集 合):标签

  • zset(有序集合):用户点赞统计、用户排名

内存存储与持久化

所有数据都存放在内存中,持久化保存的同时读写能力非常出色,同时还能保证遭遇断电或者关机故障,内存数据不会“丢失”。

功能丰富

除了存储数据,还有设置键过期时间、发布订阅、处理事务、流水线、Lua脚本等功能

简单稳定

Redis提供了几十种不同编程语言的客户端库,都很好地封装了Redis的命令。

应用场景

Redis是一个高性能的内存数据库,常用于各种应用场景,特别适合需要快速、低延迟的数据存储和检索。以下是一些常见的Redis应用场景:

  1. 缓存:Redis最常见的用途之一是作为缓存层,用于存储经常访问的数据,以加速读取操作。它可以用于数据库查询结果、Web页面片段、API响应等。

  2. 会话存储:Redis可用于存储用户会话数据,以实现高可用性和快速的身份验证和授权。它可以替代传统的会话存储方式,如基于文件或数据库的存储。

  3. 消息队列:Redis支持发布/订阅模式,可用作轻量级消息队列系统。它用于异步通信、事件驱动架构和作业队列。

  4. 计数器和排行榜:Redis的原子性操作使其适合用于实时计数器和排行榜的构建。您可以轻松地更新计数器和排行榜,而无需担心竞态条件。

  5. 分布式锁:Redis可以用于实现分布式锁,以协调分布式系统中的并发访问,防止资源竞争和数据损坏。

  6. 地理空间数据:Redis支持地理位置数据的存储和查询,使其适合用于构建位置服务和地理信息系统。

  7. 实时分析:Redis支持多种数据结构,包括有序集合(Sorted Sets),可以用于实时数据分析和排名。

  8. 缓存穿透保护:Redis可用于防止缓存穿透,即防止恶意或无效的请求导致频繁的缓存未命中,以减轻后端负载。

  9. 限流和配额管理:Redis可以用于实现API限流和资源配额管理,以控制客户端访问频率。

  10. 分布式会话存储:在分布式系统中,Redis可以用于存储和管理会话数据,以实现跨多个服务的会话共享。

  11. 实时通信:Redis可以用作实时聊天应用程序的消息传递中间件,支持即时通信。

  12. 数据缓存:Redis可以用于缓存数据库查询结果,以减轻数据库负载,提高应用程序性能。

为啥用Redis

Redis速度非常快,单机就可以支撑每秒十几万的并发,是MySQL的几十倍。快的原因:

  • 完全基于内存操作

  • 单线程,避免切换和竟态竞争(5.0加入多线程,实际是针对队列使用多线程进行读写操作)

  • 非阻塞的IO多路复用机制

  • C语言实现,Redis大量优化了基础数据结构,性能极高

你可能感兴趣的:(Redis,redis,数据库,缓存)