第一章: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 命令切换。

相关推荐
摇滚侠1 小时前
阿里云安装的 Redis 在什么位置,如何找到 Redis 的安装位置
redis·阿里云·云计算
啦啦啦_99992 小时前
Redis-2-queryFormat()方法
数据库·redis·缓存
数据知道2 小时前
PostgreSQL实战:详解如何用Python优雅地从PG中存取处理JSON
python·postgresql·json
forestsea4 小时前
深入理解Redisson RLocalCachedMap:本地缓存过期策略全解析
redis·缓存·redisson
佛祖让我来巡山4 小时前
Redis 为什么这么快?——「极速快递站」的故事
redis·redis为什么快?
啦啦啦_99996 小时前
Redis-0-业务逻辑
数据库·redis·缓存
自不量力的A同学6 小时前
Redisson 4.2.0 发布,官方推荐的 Redis 客户端
数据库·redis·缓存
fengxin_rou7 小时前
[Redis从零到精通|第四篇]:缓存穿透、雪崩、击穿
java·redis·缓存·mybatis·idea·多线程
全栈前端老曹7 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
是阿楷啊8 小时前
Java大厂面试场景:音视频场景中的Spring Boot与微服务实战
spring boot·redis·spring cloud·微服务·grafana·prometheus·java面试