redis简介

1.简介

Redis(Remote Dictionary Server)是一种开源的内存数据结构存储系统,能够用作数据库、缓存和消息代理。它支持多种数据结构,包括字符串、哈希、列表、集合及有序集合等。同时,Redis 还提供了丰富的特性和高性能,Redis 是一个高、开源的存数据结构存系统,广泛应用于现代互联网应用,由于其高,Redis 常被用作缓存,以加应用程序响应速度- 实时分析:可以存储和分析大数据流,进行实时。

  1. 主要特点

  2. 高性能:Redis 具有非常高的读写性能,能够每秒处理数十万次请求。它通过将数据存储在内存中,实现快速的读取和写入操作。

  3. 数据结构多样性,Redis 支持多种数据结构,包括:

    1. 字符串(String):最基本的数据类型,可以用来存储文本、数字等。

    2. 哈希表(Hash):用于存储键值对,适合表示对象。

    3. 列表(List):简单的字符串列表,支持在两端插入和删除元素。

    4. 集合(Set):无序的字符串集合,不允许重复,支持集合运算。

    5. 有序集合(Sorted Set):每个元素有一个分数(score),按分数排序。

  4. 持久化,Redis 支持两种持久化机制:

    1. RDB(快照):以时间间隔的形式将数据快照存储到磁盘中。

    2. AOF(追加文件):记录所有写命令以便重建数据库状态,更加可靠。

  5. 主从复制: 支持主从复制,允许数据从主节点复制到从节点,以实现高可用性和负载均衡。

  6. 分布式特性: Redis Cluster 实现了数据的分片和高可用性,使节点可以横向扩展。

  7. 事务:Redis 支持原子操作,可以通过 MULTI、EXEC、WATCH 等命令实现事务。

  8. 发布/订阅:通过 PUBLISH 和 SUBSCRIBE 命令,Redis 支持消息的发布和订阅,适合实时消息传递场景。

  9. 任务调度:可以将任务以队列的形式存储在 Redis 中,实现任务的异步处理。

  10. redis和mysql的区别

    1.redis为非关系型数据库,MySQL是关系型数据库。

    2.Redis:由于数据主要保内存中,因此写速度极快,适合对延迟敏感的应用,如缓存、会话存和实时分析。 MySQL: 数据存储在盘上,虽然 MySQL 也支持内存储,但访问速度通常比 Redis 慢。更适合需要查询和事务支持的应用。

    3.redis:一些频繁使用,比较热的数据。如排行榜、计数器、消息队列推送、好友关注、粉丝

    mysql: 业务性数据,历史数据等。如公司过去一年的业绩收入。

  11. redis的各种模式及其特点

    单机模式

    在单机模式下,Redis 运行一个单独的实例中,所有的数据存储和处理都在这一个节点上。适用于非可用小型应用和开发,具有以下特点:

    优点:安装和配置相对简单,成本低,高性能,单机不需要同步数据。

    缺点:可靠性保证不是很好,单节点有宕机的风险,单机高性能受限于 CPU 的处理能力,Redis 是单线程的,当需求增长时,单节点无法满足高并或大数据量需求。

    集群模式

    Redis Cluster 采用无中心结构,每个节点都可以保存数据和整个集群状态,每个节点都和其他所有节点连接。 Cluster 一般由多个节点组成,节点数量至少为 6 个才能保证组成完整高可用的集群,其中三个为主节点,三个为从节点。三个主节点会分配槽,处理客户端的命令请求,而从节点可用在主节点故障后,顶替主节点。

    优点:自动分片,数据分片到不同节点,保持负载均衡,可用性每个分片有多个副本数据安全性。

    缺点:配置和管理复杂:需要理解分片和节点管理,度大。一致性问题:使用最终一致性模型,可能面短时间内的数据一致。客户端复杂性:支持分片的库,增加了复杂度。

    主从复制模式

    可以配置主节点和多个从节点,主节点负责写操作,从节点通过复制主节点的数据以提供读操作。

    优点:高可用性,部分节点不可用时,集群仍可用。通过增加 Slave 做备份数据副本,Master/Slave 角色方便水平扩展,QPS(每秒查询率) 增加,增加 Slave 即可,节点间数据共享,节点可动态添加或删除,可动态调整数据分布,节点之间通过 gossip 协议交换状态信息,用投票机制完成 Slave 到 Master 的角色提升。降低 Master 读压力,转交给 Slave 节点,主节点宕机,从节点作为主节点的备份可以随时顶上继续提供服。

    缺点:没有解决主节点写的压力,整个主从切换过程需要人工干预,写操作只能在主节点进行,容易成为瓶颈,集群环境搭建复杂。

    哨兵模式

    在主从复制的基础上,哨兵实现了自动化故障恢复,监控:Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。提醒:当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知,自动故障迁移:当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作。

    优点:高可用性,通过监控主从节点,自动进行障转移,服务持续可用,哨兵会自动处理节点的选举和角色转,减少人工干,可以实现读分离,提升。

    缺点:配置复杂,相比单机主从模式,和管理复杂度较高。哨兵需要频繁获取主从节点状态,增加网络负担,故障转移可能导致短暂的不一致性。

4.redis持久化的方式以及其区别

Redis 支持多种持久化方式,可以保证数据在重启或故障时能够恢复。主要有以下两种持久化方式:

1、RDB (Redis Database File)
原理:

RDB 持久化是通过定期快照(snapshot)方式将 Redis 数据库的状态保存到磁盘上。可以通过配置 SAVE 命令来指定快照的时间间隔和满足条件,例如,在 900 秒内至少有 1 个键被修改。

优点:

效率高:RDB 持久化占用较少的 I/O 资源,性能开销较小(尤其是在进行快照时)。

简单易用:自动化的快照过程,无需额外复杂配置,方便管理。

可用于备份:生成的 RDB 文件可以用于快速备份,可以在其他地方快速恢复。

缺点:

数据丢失风险:在快照之前发生故障,所有在此期间的数据将会丢失。

恢复速度:数据量较大的,恢复速度较,因为需要读取整个DB 文件来加载。

2、AOF (-Only File)
原理:

A 持久化是将所有写命令,以日志的形式追加到文件中,每当执行写操作时,都会将相关命令到 AOF 文件。可以配置策略决定何时将缓冲区的内容入磁盘,例如次执行写操作、每秒执行写操作等。

优点:

数据安全性高:使用 AOF 持久的 Redis 可以最大限度地减少数据失。如果配置为“每秒同步”,大多数情况下,丢失时间小 1 秒

易于恢复:AOF 文件具备命令记录特性,恢复只需重放所有写命令,数据时更加灵。

缺点:

由于所有写操作都记录到 AOF 中,文件会逐渐增大,占用更多磁盘。

性能销:文件入会引入额外的 I/O作,尤其在 “每次写” 策略时,性能影响较大。

需要重写:当 AOF 文件过大时,会影响性能,因此需要定期重写()以生成一个较小的 AOF。

3、混合持久化 (R + AOF)

5.0及以后的版本支持混合持久化机制,可同时使用RDB 和 AOF。这意味着在进行 RDB 快照时,同时也记录最近的 A 操作,以减少启动时的重命令数量。

优点:

平衡性能与安全:结合 RDB 的性能和 AOF 的安全性,在故恢复时能够提高。

快速重启:可以在更短的时间恢复数据,因为 A 文件大小减小。

缺点:

复杂性增加:配置和管理变得相对复杂注意 RDB 和 AOF 在设置上的。

存储开销:使用 RDB 和 AOF 会占用更多的磁盘空间。

Redis 基本操作

Redis-cli -h 地址ip p 端口 -a 密码

Keys * 查看所有key

搭建三台单实例模式 2. 配置主从(一主两从) 3查看replication字段

哨兵模式:不支持 key set get命令

登录哨兵模式 查看当前的master主节点

redis安装

1、进入官网:https://redis.io/

2、点击doc

3、按照上述步骤

posted on 2025-05-12 10:43  小二jerry  阅读(74)  评论(0)    收藏  举报