点评--day01--初识Redis

5 阅读3分钟

1. 认识 NoSQL

Redis 是一种键值型(Key-Value)的 NoSQL 数据库。NoSQL 可以翻译为 Not Only SQL(不仅仅是 SQL),或者是非关系型数据库。相比于传统的 MySQL 等关系型数据库,NoSQL 在以下几个方面有着显著的差异:

  • 数据结构(结构化与非结构化) :传统关系型数据库是结构化数据,表字段和约束严格;而 NoSQL 数据格式没有严格约束,形式自由,常见的有键值型(如 Redis)、文档型(如 MongoDB)、图格式等。

  • 数据关联(关联与非关联) :传统数据库依靠外键维护表与表之间的关联;NoSQL 不存在关联关系,维护关系需要依靠代码中的业务逻辑或数据耦合。

  • 查询方式:关系型数据库有统一的 SQL 语法标准;而非关系型数据库的查询语法各异,五花八门。

  • 事务特性:关系型数据库严格满足 ACID 原则;而 NoSQL 往往不支持严格事务,通常只能实现基本的一致性(BASE 原则)。

  • 存储方式与扩展性

    • 存储:关系型数据库基于磁盘存储,磁盘 IO 大,性能受限;NoSQL 更多依赖内存操作,读写速度极快。
    • 扩展性:关系型数据库因为有关联关系,多采用主从模式进行数据备份(垂直扩展);NoSQL 可以将数据拆分存储在不同机器上,解决内存有限的问题,实现海量数据的水平扩展。

2. 认识 Redis

Redis 诞生于2009年,全称是 Remote Dictionary Server(远程词典服务器) 。它是一个基于内存的键值型 NoSQL 数据库。

Redis 的核心特征包括:

  • 键值型 (Key-Value) :Value 支持多种不同的数据结构(如 String、Hash、List、Set 等),功能非常丰富。
  • 单线程:Redis 采用单线程处理命令,确保了每个命令具备原子性。
  • 低延迟、速度快:得益于基于内存操作、IO 多路复用模型以及良好的底层数据编码。
  • 支持数据持久化:能将内存中的数据保存到磁盘,防止数据丢失。
  • 支持集群:支持主从集群、分片集群模式,满足高可用和海量并发需求。
  • 支持多语言客户端:包含 Java、Python、C 等多种语言的成熟客户端。

3. Redis 的安装与启动

大多数企业都是基于 Linux 服务器来部署 Redis,官方也没有提供 Windows 安装包。课程中推荐基于 CentOS 7 进行安装。

  • 安装步骤:由于 Redis 是 C 语言编写的,必须先安装 gcc 依赖,然后解压源码并执行 make && make install 编译安装。

  • 启动方式

    • 默认启动:直接运行 redis-server,属于前台阻塞式启动,按 CTRL+C 会停止服务,不推荐使用
    • 指定配置启动(后台启动) :修改 redis.conf 配置文件(将 daemonize 改为 yes,并设置密码 requirepass 和绑定 IP bind 0.0.0.0),然后通过 redis-server redis.conf 命令后台启动。
    • 开机自启:可以编写系统服务文件(redis.service),使用 systemctl enable redis 实现开机自动启动。

4. Redis 客户端连接

安装好 Redis 服务端后,我们可以通过客户端来进行数据的 CRUD(增删改查)操作:

  • 命令行客户端:Redis 自带的 redis-cli 工具,使用 -h 指定 IP,-p 指定端口,-a 指定密码连接,连接后可通过 ping 命令测试心跳(正常返回 PONG)。
  • 图形化桌面客户端:课程推荐使用基于 GitHub 开源的 RedisDesktopManager (RDM) / RESP.app,通过图形化界面建立连接,直观管理 Redis 的16个默认仓库(db0 ~ db15)。