### Redis学习笔记知识点详解 #### 1. Redis安装与基本使用 **1.1 Redis特性** Redis是一款开源的键值数据库系统,具有以下显著特点: - **数据类型丰富:** - **字符串(Strings)**:最基础的数据类型,可用于简单的键值存储。 - **哈希(Hashes)**:类似于字典,可以存储键值对集合。 - **列表(Lists)**:支持链表结构,适合构建队列等应用场景。 - **集合(Sets)**:无序的键集合,用于处理唯一性问题。 - **有序集合(SortedSets)**:与集合类似,但每个成员都关联一个分数,可用于实现排行榜等功能。 - **内存优化与持久化:** - **内存存储**:所有数据存储于内存中,提供高速访问性能。 - **持久化选项**: - RDB(快照方式) - AOF(Append Only File) - **功能丰富:** - **缓存服务**:常用作缓存数据库,提高应用程序性能。 - **消息队列**:实现队列或消息系统。 - **订阅/发布**:支持消息订阅与发布功能。 - **键过期**:为键设置生存时间,实现自动清理。 - **按规则删除键**:支持根据策略自动删除键。 - **批量操作**:支持同时对多个键进行操作。 - **主从复制**:支持主从架构,用于数据备份与读写分离。 - **集群**:支持分布式部署,实现高可用和负载均衡。 - **简单稳定:** - **易于使用**:简单的命令结构,易于上手。 - **多语言支持**:提供多种编程语言的客户端。 - **C语言编写**:底层采用C语言实现,性能优秀。 **1.2 安装** - **Windows版安装:** - 注意版本选择:稳定版为偶数版本,如2.4.x、2.6.x。 - 下载地址:[Windows版Redis](https://github.com/MSOpenTech/redis/releases) - 解压后运行`redis-server.exe`启动服务端,使用`redis-cli.exe`作为客户端工具进行交互。 - **命令示例:** - `ping`: 返回`PONG`表示连接成功。 - `set key value`: 设置键值对。 - `get key`: 获取键对应的值。 - `hset hashkey field value`: 在哈希中设置键值对。 - `lpush listkey value`: 向列表头部添加元素。 - 更多命令可参考官方文档。 #### 2. Redis持久化 **2.1 安装Redis 3.0** - **RDB方式:** - **禁用RDB:** 可以在配置文件中通过`save`命令禁用RDB。 - **RDB持久化过程:** 定期将内存中的数据快照保存到磁盘上的一个文件中。 - **AOF方式:** - **AOF内容:** 记录每条写操作命令,用于恢复数据。 - **AOF文件优化:** 通过重写减少文件大小。 - **文件到磁盘机制:** 控制AOF文件何时同步到磁盘。 - **AOF与RDB的区别:** - **AOF更安全**:每次写操作都会记录,理论上不会丢失任何数据。 - **RDB更快**:恢复数据速度快,但可能会丢失最后一段时间的数据。 - **结合使用**:通常建议同时启用RDB和AOF,以便利用两者的优点。 #### 3. Redis主从架构 - **主从复制(读写分离):** - **主从架构**:一个主服务器管理多个从服务器,实现数据同步。 - **主从从架构**:支持多级从服务器,提高系统冗余度。 - **从库只读**:从服务器只负责读操作,提高读性能。 - **数据同步过程**:从服务器定期向主服务器请求数据更新,保持数据一致性。 - **宕机处理**:当主服务器出现故障时,可以通过选举机制提升从服务器为主服务器。 #### 4. Redis哨兵(Sentinel) - **单个哨兵**:用于监控主服务器的状态,但在单点故障场景下存在风险。 - **多个哨兵**:通过集群形式部署哨兵,提高监控系统的可靠性。 #### 5. 基于Redis 3.0的集群 - **预热(Rediscluster架构)**:初始化集群配置,准备数据迁移。 - **环境准备**:搭建集群环境,包括启动多个节点。 - **节点管理**:支持节点的动态增加与删除。 - **高可用集群**:通过主从复制和哨兵系统实现高可用。 #### 6. 使用Jedis连接Redis - **简单的Jedis应用**:提供基础的Redis操作,如增删改查。 - **使用Jedis连接池**:通过连接池管理多个Jedis实例,提高效率。 - **ShardedJedis分片集群的使用**: - **ShardedJedis**:针对Redis集群的支持,实现数据分片。 - **ShardedJedis连接池和管道**:进一步优化性能,支持并发操作。 - **Jedis哨兵**: - **简单用法**:集成哨兵监控系统,实现故障转移。 - **故障转移**:自动检测并切换到备用服务器。 - **监控**:实时监控Redis集群状态。 - **动态赋值**:根据哨兵信息动态调整连接信息。 - **高可用的Sentinel连接池**:确保即使在部分服务器失效的情况下也能正常工作。 - **JedisCluster集群**:通过Jedis提供的API支持分布式Redis集群的连接和操作。 通过以上总结,我们可以了解到Redis不仅具备丰富的数据类型和高级特性,而且提供了强大的持久化方案、主从架构以及集群解决方案。无论是作为高性能缓存还是复杂的数据存储系统,Redis都能够满足开发者的需求。
剩余81页未读,继续阅读
- 粉丝: 40
- 资源: 72
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- x64dbg-development-2022-09-07-14-52.zip
- 多彩吉安红色旅游网站-JAVA-基于springBoot多彩吉安红色旅游网站的设计与实现
- 本 repo 包含使用新 cv2 接口的 OpenCV-Python 库教程.zip
- 更新框架 (TUF) 的 Python 参考实现.zip
- Qos,GCC,pacing,Nack
- 章节1:Python入门视频
- 无需样板的 Python 类.zip
- ESP32 : 32-bit MCU & 2.4 GHz Wi-Fi & BT/BLE SoCs
- 博物馆文博资源库-JAVA-基于springBoot博物馆文博资源库系统设计与实现
- 旅游网站-JAVA-springboot+vue的桂林旅游网站系统设计与实现