Redis 基础(完整版)
---
一、Redis 简介
1.1 什么是 Redis
Redis(Remote Dictionary Server,远程数据服务)是一款开源的、基于内存的高性能键值对数据库,由意大利人 Salvatore Sanfilippo(网名 antirez)使用 C 语言开发。
核心特点:
| 特点 | 说明 |
|---|---|
| 基于内存 | 数据存储在 RAM 中,读写速度极快 |
| 键值对结构 | 数据以 key => value 方式存储 |
| 丰富数据结构 | 支持 string、list、hash、set、sorted set |
| 可持久化 | 支持 RDB 和 AOF 两种方式保存数据到磁盘 |
| 支持主从复制 | 实现数据备份和读写分离 |
1.2 应用场景
| 场景 | 数据类型 | 说明 |
|---|---|---|
| 排行榜 | Sorted Set | 取 top N 操作,如微博热门话题 |
| 最新数据 | List | 获取最新 N 条数据或某分类最新数据 |
| 计数器 | String | 文章浏览量、点赞数等 |
| 共同好友 | Set | 社交网站获取共同好友(交集运算) |
| IP 黑白名单 | Set | 防攻击系统,判断 IP 是否在名单中 |
| Session 存储 | String | 将用户会话信息存储到 Redis |
1.3 官方资源
| 资源 | 地址 |
|---|---|
| 官网 | https://redis.io |
| GitHub | https://github.com/antirez/redis |
---
二、安装 Redis
2.1 下载与编译安装
# 下载 Redis 安装包
wget https://download.redis.io/releases/redis-8.4.0.tar.gz
# 解压
# -z: gzip解压 -x: 解压 -v: 显示过程 -f: 指定文件
tar -zxvf redis-8.4.0.tar.gz
# 进入解压目录
cd redis-8.4.0
# 编译源代码
make
# 安装到指定目录
make PREFIX=/usr/local/redis install命令作用:
- 访问
https://download.redis.io/releases/redis-8.4.0.tar.gz;curl默认把响应写到终端,wget默认下载到文件。可据 HTTP 状态、响应内容或下载结果判断服务是否可访问。
- 按选项打包或解包归档文件;
-c表示创建归档,-x表示解包,-f后面指定归档文件名。
执行结果:
- 成功后目标文件会下载到当前目录或
-O指定的位置。
- 成功后会生成归档文件或把归档内容解压到目标目录;用
tar -tf 归档文件可查看归档内容。
关键参数:
注意事项:
**注意事项:**
---
"devops"
"devops"
---
---
"itheima"
"devops123"
"dev"| 操作 | 说明 |
|---|
使用方式:
**核心运算:**
| 运算 | 命令 | 说明 |
|---|---|---|
| 交集 | SINTER | 两个集合都有的元素(共同部分) |
| 并集 | SUNION | 两个集合合并的所有不重复元素 |
| 差集 | SDIFF | A 有但 B 没有的元素 |
| 特点 | 说明 |
|---|---|
| 元素唯一 | 不能有重复元素 |
| 权重排序 | 每个元素带分数,按分数排序 |
| 浮点数分数 | 分数可以是小数 |
"8"
"6""cndws"
| 场景 | 推荐类型 | 原因 |
|---|---|---|
| 数据之间关联度不大 | String | 分开存更简单 |
| 数据属于同一个对象 | Hash | 更紧凑,压缩比更高 |
---
持久化是将内存中的数据保存到磁盘,确保服务重启后数据不丢失。
| 存储方式 | 特点 |
|---|---|
| 内存(RAM) | 速度快,断电丢失 |
| 磁盘(硬盘) | 速度慢,断电不丢失 |
| 特点 | 说明 |
|---|---|
| 恢复速度快 | 直接加载一个文件 |
| 文件体积小 | 二进制压缩格式 |
| 数据丢失风险 | 最后一次快照之后的数据可能丢失 |
三个条件是"或"关系,满足任意一个就触发。
| 步骤 | 说明 |
|---|
**注意事项:**
| 策略 | 说明 | 安全性 | 性能 |
|---|---|---|---|
| 文件 | 说明 |
|---|---|
| appendonly.aof.1.base.rdb | 基础文件(RDB 格式) |
| appendonly.aof.1.incr.aof | 增量文件(AOF 格式) |
| appendonly.aof.manifest | 清单文件 |
| 对比项 | RDB | AOF |
|---|---|---|
| 原理 | 定时拍快照(全量) | 记录每条写命令(增量) |
| 恢复速度 | 快(直接加载一个文件) | 慢(要重放所有命令) |
| 文件大小 | 小(压缩的二进制) | 大(文本命令) |
| 数据安全 | 可能丢失几分钟数据 | 最多丢1秒(everysec策略) |
| 性能影响 | 快照时 fork 子进程 | 每次写都要记录 |
**混合模式工作方式:**
---
| 角色 | 职责 |
|---|---|
| 编号 | IP | 角色 |
|---|---|---|
注意事项:
:g/#/d
:g/^$/d
注意事项:
---
| 命令 | 说明 |
|---|---|
| 命令 | 说明 |
|---|---|
| 命令 | 说明 |
|---|---|
| 命令 | 说明 |
|---|---|
| 命令 | 说明 |
|---|---|
| 命令 | 说明 |
|---|---|
| 命令 | 说明 |
|---|---|
| 命令 | 说明 |
|---|---|