第19周JavaWeb编程实战-MyBatis实现OA系统 3.Redis入门

Redis 学习笔记

1. Redis 简介

什么是 Redis?

  • Redis 是一个基于内存的 NoSQL 数据库,专门用于处理高并发和分布式项目中常见的性能瓶颈问题。
  • NoSQL:全称为 “Not Only SQL”。与传统关系型数据库不同,NoSQL 数据库通常无需表结构、外键关系等复杂设计,数据以键值对形式存储,适合大规模、高性能的分布式环境。

Redis 的由来

  • Redis 的开发者是意大利人 Salvatore Sanfilippo。他在创建网站过程中,发现传统数据库(如 MySQL 和 Oracle)的硬盘存储带来性能瓶颈,决定开发基于内存的数据库来解决这个问题,进而诞生了 Redis。
  • Redis Labs:Salvatore 在开发 Redis 后成立了 Redis Labs,目前为全球超过 8000 家公司提供 Redis 解决方案。

Redis 的核心特性

  • 基于内存:Redis 将数据存储在内存中,极大提升了读取速度和性能,特别适用于高并发场景。
  • 高性能:相比传统的关系型数据库,Redis 的数据检索速度可以提升 10 倍甚至更多。
  • 持久化:虽然 Redis 是基于内存存储,但它也支持将数据持久化到磁盘,确保在重启或当机后数据不丢失。

什么是 NoSQL?

  • Not Only SQL:NoSQL 数据库不局限于 SQL 的关系型数据结构,通常采用键值对(Key-Value)形式存储数据。
  • 与关系型数据库的区别
    • 关系型数据库的典型特征是表结构、主键、外键以及复杂的表关系(如一对一、一对多、多对多)。
    • 关系型数据库在处理大规模数据或分布式数据扩展时效率较低,而 NoSQL 数据库可以有效应对这些挑战。
    • NoSQL 数据库适合处理非结构化数据,具有高可扩展性和灵活性。

Redis 的数据存储方式

  • Redis 的数据是以 键值对(Key-Value) 形式存储的,这类似于编程语言中的 MapHashMap,每个键(Key)对应一个值(Value)。
  • 键值对的存储方式使得 Redis 在查询时具有极高的效率,特别是在需要快速数据读取和写入的场景。

内存数据库的优势

  • 速度快:由于数据存储在内存中,Redis 的数据处理速度比传统的硬盘存储数据库快得多。适用于处理大量并发请求的场景,如电商网站、社交媒体等。
  • 高并发处理:在电商场景中,通过将商品数据从传统数据库如 MySQL 中提取并缓存在 Redis 中,可以大大提升数据的检索速度,避免传统硬盘存储的瓶颈。

Redis 的持久化功能

  • 尽管 Redis 是基于内存的数据库,但它支持将内存数据定期或实时持久化到磁盘中,防止数据丢失。
  • RDB(快照)和 AOF(追加日志)是 Redis 的两种持久化机制,分别用于定期存储和记录每个操作。

Redis 在现代互联网中的作用

  • 随着硬件价格的下降,内存的普及,Redis 等基于内存的数据库开始被广泛应用。特别是近年来,互联网行业对高并发处理的需求越来越大,Redis 作为缓存解决方案备受青睐。

2.Redis 核心特性

2. 1. 速度快

  • Redis 最显著的特点是极高的速度。在峰值情况下,Redis 每秒可以处理 十万次操作。即使在常规场景下,Redis 每秒处理 两三万次操作 也是可以保证的。这种速度远远超过传统的关系型数据库(如 MySQL、Oracle),因为 Redis 是基于内存操作,读写速度非常快。

2. 2. 多语言支持

  • Redis 拥有广泛的开发语言支持。无论是常见的 JavaC#Python 等开发语言,还是其他主流开发工具,Redis 都有良好的兼容性和交互工具。同时,由于 Redis 是开源的,开发者甚至可以为特定需求自定义 Redis 交互工具。

2. 3. 持久化机制

  • Redis 提供了两种持久化机制,确保数据在 Redis 失去服务后不丢失:
    • RDB (Redis DataBase):基于全量备份的持久化方案。
    • AOF (Append Only File):基于日志更新的持久化方案,通过记录每次操作来持久化数据。

2. 4. 多种数据结构支持

  • Redis 支持丰富的数据类型和结构,如:

    • 字符串 (String):最基本的数据类型。
    • 列表 (List):类似于数组的数据结构。
    • 哈希 (Hash):键值对的映射集合。
    • 集合 (Set):无序且唯一的集合。
    • 有序集合 (Sorted Set):带有排序的集合结构。

    这些数据结构帮助开发者灵活地处理各种类型的数据需求。

2. 5. 主从复制

  • 主从复制是指多个 Redis 服务器之间保持数据同步的机制。通过主从复制,数据可以在多台 Redis 实例之间保持一致,这样即使某台 Redis 出现问题,其他服务器也能继续提供服务。

2. 6. 分布式与高可用

  • 分布式:Redis 支持将数据分布到多台服务器上,这些服务器可以位于不同地域。例如,一台服务器位于广州,另一台服务器位于北京,程序可以根据地理位置就近访问 Redis,减少网络延迟。
  • 高可用性:Redis 提供了 Sentinel 哨兵机制,用于监控集群中的 Redis 实例,自动发现出现故障的节点并进行切换,确保 Redis 服务的持续可用性,避免单点故障。

2. 7. 哨兵机制 (Sentinel)

  • Redis 的哨兵机制 (Sentinel) 提供了一种自动化的高可用解决方案,可以监控 Redis 实例并在出现问题时自动完成故障转移。哨兵可以监测主从关系中的主节点状态,如果主节点出现故障,它会自动将从节点提升为主节点,从而确保系统的稳定运行。

3.Redis Linux安装

参考官网

sudo apt-get install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis

连接到 Redis
一旦 Redis 运行,您可以通过运行以下命令对其进行测试redis-cli:

redis-cli

使用以下命令测试连接ping:

127.0.0.1:6379> ping
PONG
sudo vim /etc/redis/redis.conf #找到6379更改默认端口
#找到databases可以更改数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值