第一章:Redis 安装与入门

目录

[1.1 初识Redis](#1.1 初识Redis)

[1.1.1 认识NoSQL](#1.1.1 认识NoSQL)

[1.2 Redis简介](#1.2 Redis简介)

[1.3 安装Redis(Linux-CentOS 7示例)](#1.3 安装Redis(Linux-CentOS 7示例))

[1.3.1 安装依赖](#1.3.1 安装依赖)

[1.3.2 上传安装包并解压编译](#1.3.2 上传安装包并解压编译)

[1.3.3 启动Redis](#1.3.3 启动Redis)

[1.4 Redis客户端](#1.4 Redis客户端)


Redis是一种基于内存的键值型NoSQL数据库,以key-value形式存储数据,支持多种数据结构。与传统关系型数据库相比,Redis具有非结构化、无关联、查询语法灵活、弱事务支持等特点,适用于高性能场景。它采用单线程模型(6.0+部分多线程),支持持久化、集群部署和多语言客户端。安装过程包括依赖安装、源码编译和配置启动,可通过命令行或图形界面连接。Redis默认提供16个数据库,支持密码认证和后台运行,适合作为高速缓存或消息中间件使用。

1.1 初识Redis

Redis是一种键值型NoSql数据库。

  • 键值型 :Redis中存储的数据都是以key-value对的形式存储,value可以是字符串、数值、甚至json等多种形式。
  • NoSql:非关系型数据库,区别于传统的关系型数据库(如MySQL)。

1.1.1 认识NoSQL

  1. 结构化 vs 非结构化

    • 关系型数据库 :结构化数据,有严格的表结构约束(字段名、类型、约束等)。

    • NoSQL数据库:形式自由,可以是键值型、文档型、图型等。

键值型:

文档型:

图型:

  1. 关联 vs 非关联

    • 关系型数据库 :通过外键等维护表与表之间的关联。

    • NoSQL数据库:通常无关联,数据关系通过业务逻辑或数据嵌套(耦合)来维护。

      • 补充说明:虽然可以在一个文档中嵌套其他数据(如上文订单例子),但这可能导致数据冗余和更新复杂。通常更推荐在业务代码中维护数据间的关系。
  2. 查询方式

    • 关系型数据库:使用标准的SQL语句。

    • NoSQL数据库:查询语法各异,没有统一标准。

  3. 事务

    • 关系型数据库:严格支持事务的ACID特性。

    • NoSQL数据库:大多不支持事务或仅支持弱一致性(BASE)。

  4. 总结对比

    |----------|-----------------------|------------------|
    | 特性 | 关系型数据库 | 非关系型数据库 |
    | 存储方式 | 基于磁盘,大量磁盘IO | 基于内存,操作速度快 |
    | 扩展性 | 一般通过主从复制(垂直扩展),水平扩展困难 | 易于水平拆分,支持海量数据存储 |
    | 数据结构 | 结构化(表) | 非结构化,灵活 |
    | 数据关联 | 通过外键关联 | 无关联,或通过代码、数据嵌套维护 |
    | 查询方式 | SQL | 各不相同 |
    | 事务 | 支持ACID | 通常不支持或弱支持 |

1.2 Redis简介

Redis(Remote Dictionary Server)诞生于2009年,是一个基于内存的键值型NoSQL数据库。
特征

  • 键值对存储,value支持多种数据结构。

  • 单线程(核心网络模型,6.0后部分功能支持多线程),命令具备原子性。

  • 低延迟、高速(基于内存、IO多路复用、优秀编码)。

  • 支持数据持久化(RDB、AOF)。

  • 支持主从集群、分片集群。

  • 支持多语言客户端。

1.3 安装Redis(Linux-CentOS 7示例)

1.3.1 安装依赖

复制代码
yum install -y gcc tcl

1.3.2 上传安装包并解压编译

假设安装包上传至 /usr/local/src

复制代码
tar -xzf redis-6.2.6.tar.gz
cd redis-6.2.6
make && make install

默认安装路径在 /usr/local/bin,其中包含:

  • redis-cli:命令行客户端

  • redis-server:服务端启动脚本

  • redis-sentinel:哨兵启动脚本

1.3.3 启动Redis

  1. 默认启动(前台)redis-server (不推荐,会阻塞终端)

  2. 指定配置启动(后台)

    • 备份配置文件:cp redis.conf redis.conf.bck

    • 修改 redis.conf 关键配置:

      复制代码
      bind 0.0.0.0        # 允许所有IP访问,生产环境需谨慎
      daemonize yes       # 后台运行
      requirepass 123321  # 设置密码
    • 其他常见配置:

      复制代码
      port 6379
      dir ./              # 数据持久化文件保存目录
      databases 1         # 数据库数量
      maxmemory 512mb     # 最大内存限制
      logfile "redis.log" # 日志文件
    • 启动:redis-server redis.conf

    • 停止:redis-cli -u 123321 shutdown

  3. 开机自启(systemd方式)

    • 创建服务文件 /etc/systemd/system/redis.service,内容如下:

      复制代码
      [Unit]
      Description=redis-server
      After=network.target
      
      [Service]
      Type=forking
      ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
      PrivateTmp=true
      
      [Install]
      WantedBy=multi-user.target
    • 重载服务并设置开机自启:

      复制代码
      systemctl daemon-reload
      systemctl start redis
      systemctl enable redis

1.4 Redis客户端

  1. 命令行客户端 redis-cli

    复制代码
    redis-cli -h 127.0.0.1 -p 6379 -a 密码# 连接
    ping # 测试连通性,返回 PONG 表示成功
  2. 图形化桌面客户端(如Redis Desktop Manager)

    • 下载安装后,新建连接,填写主机、端口、密码等信息。

    • Redis默认有16个数据库(编号0-15),可通过 select 0 命令切换。

相关推荐
虹科网络安全14 分钟前
艾体宝产品|深度解读 Redis 8.4 新增功能:原子化 Slot 迁移(上)
数据库·redis·bootstrap
小袁拒绝摆烂1 小时前
多表关联大平层转JSON树形结构
java·json
虹科网络安全3 小时前
艾体宝新闻|Redis 月度更新速览:2026 年 3 月
数据库·redis·缓存
y = xⁿ5 小时前
Redis八股学习日记:布隆过滤器
数据库·redis·学习
学术阿凡提6 小时前
Spring Boot 集成 Fastjson2 完整教程:从入门到避坑
spring boot·安全·json
LIUAWEIO6 小时前
鸽鸽工具网:免费在线工具大全,打开网页即用
人工智能·安全·ai·json
IT界的老黄牛8 小时前
停电后 Redis 集群两节点起不来:fix 完还报 Bad file format?多部分 AOF 修复的正确姿势
运维·redis·缓存
YaBingSec9 小时前
玄机网络安全靶场:Hadoop YARN ResourceManager 未授权 RCE WP
大数据·数据库·hadoop·redis·笔记·分布式·web安全
qq_40999093?9 小时前
NoSQL数据库解析:Redis
数据库·redis·nosql
KeyonY11 小时前
车联网规则引擎设计之热更新与版本管理
redis·golang·车联网