Redis数据库简介

发表时间: 2023-12-04 19:13

数据库作为信息存储和检索的核心,经历了关系型(SQL)和非关系型(NoSQL)两个主要范式的演变。Redis 是NoSQL 中较为突出的产品, 具备许多特性, 包括高性能、多种数据结构支持和灵活的应用场景。

本合集将来说明Redis的数据类型, 事务,lua脚本的使用等方面来进行说明。

SQL VS NoSQL

关系型数据库(SQL)

特点:

  1. 二维模式: 数据以表格形式存储,基于行存储数据, 是一个二维的模式。
  2. 结构化数据: 存储结构化数据,需要适应表结构。
  3. 关联关系: 表与表之间存在关联(Relationship)。
  4. SQL 操作: 大部分关系型数据库支持 SQL 操作,包括复杂的关联查询。
  5. ACID 特性: 支持事务(ACID),提供严格或实时的数据一致性。

限制:

  1. 扩展难度: 垂直扩展,扩容通常需要堆硬件,不支持动态的扩缩容。
  2. 表结构修改困难: 表结构修改不灵活,存储的数据格式受限。
  3. 性能挑战: 在高并发和高数据量的情况下,我们的关系型数据库通常会把数据持久化到磁盘,基于磁盘的读写压力比较大

非关系型数据库(NoSQL)

特点:

  1. 非结构化数据: 存储非结构化数据,如文本、图片、音频、视频。
  2. 无关联: 表与表之间没有关联,可扩展性强。
  3. BASE 理论: 保证数据最终一致性,遵循 BASE(碱) 理论(Basically Available、Soft-state、Eventually Consistent)。
  4. 高并发高效读写: 支持海量数据存储和高并发的高效读写。
  5. 分布式: 支持分布式,能够对数据进行分片存储,扩缩容简单。

特性:

  1. 丰富数据类型: 支持更丰富的数据类型。
  2. 进程内与跨进程: 可以在进程内或跨进程运行。
  3. 功能丰富: 包括持久化机制、过期策略等功能。
  4. 多语言支持: 支持多种编程语言。
  5. 高可用集群: 具备高可用性和集群特性。


Redis的安装和启动 (docker)

使用docker compose的方式进行部署。

docker-compose.yaml 文件如下:

version: '3'services:  redis:    image: redis:5    container_name: redis    command: redis-server --appendonly yes --requirepass "abcd1234"    volumes:      - /Users/zhuchunlei/home/docker/mydata/redis/data:/data #数据文件挂载    ports:      - 6379:6379

只需要docker-compose 启动即可。

docker-compose up -d