Redis 基础命令、核心概念与安装验证完整指南

本文是一篇从零开始、可落地实操的 Redis 入门指南,涵盖:

  • Redis 是什么 & 核心特性

  • Redis 的安装方式(Linux / macOS / Docker)

  • Redis 安装后的验证方法

  • Redis 基础数据结构与常用命令

  • Redis 服务管理与常见问题排查

适合 后端开发 / 平台开发 / 运维 / 初学者 快速建立 Redis 使用能力。


一、Redis 是什么?(从使用场景理解)

在后端系统中,Redis 往往不是"主角",但几乎每一个高并发系统都离不开它

如果用一句话概括:

Redis 是一个以"速度"为第一目标的内存型数据结构服务器。

它最常被用来解决三类问题:

  1. :数据库扛不住的读写压力

  2. 共享:多进程 / 多服务之间的状态同步

  3. 控制:限流、分布式锁、队列、排行榜

理解 Redis,关键不在"命令背得多熟",而在于它解决了什么问题,以及为什么用它而不是别的方案

Redis(Remote Dictionary Server) 是一个 基于内存的 Key-Value 数据库,常用于:

  • 缓存(最常见)

  • 分布式锁

  • 消息队列(List / Stream)

  • 排行榜、计数器

  • 会话存储

Redis 的核心特性(基础概念)

在真正使用 Redis 之前,有几个非常重要的基础概念必须先建立:


1️⃣ 基于内存(In-Memory)

Redis 的数据主要存放在 内存 中,这直接带来两个结果:

  • ✅ 读写速度极快(微秒级)

  • ⚠️ 内存是有限资源,必须考虑淘汰与持久化

这也是为什么 Redis 天生适合做缓存,而不适合作为唯一存储。


2️⃣ Key--Value + 数据结构

Redis 不是简单的 KV,而是:

Key -- Data Structure

也就是说:

  • Key 是字符串

  • Value 可以是:String / List / Hash / Set / ZSet / Stream

这一点决定了:

  • Redis 很多"高级功能"并不需要额外组件

  • 例如:排行榜、队列、计数器,都是数据结构天然支持的


3️⃣ 单线程模型(这是重点)

Redis 的命令执行是单线程的(不考虑 IO 线程)。

这并不意味着它慢,恰恰相反:

  • 避免了锁竞争

  • 避免了上下文切换

  • 保证命令原子性

Redis 的高性能,来自:

单线程 + 非阻塞 IO + 高效的数据结构


4️⃣ 过期机制(TTL)

Redis 中的 Key 可以设置过期时间:

复制代码
Key + TTL
  • 到期后自动删除

  • 是缓存设计的核心能力


5️⃣ 持久化不是"默认保障"

Redis 支持持久化,但需要明确:

  • Redis 的第一职责是 性能

  • 数据安全依赖于你如何配置 RDB / AOF


特性 说明
内存存储 速度极快(微秒级)
多数据结构 String / List / Set / Hash / ZSet
单线程模型 简化并发,性能稳定
持久化 RDB / AOF
支持集群 主从、哨兵、Cluster

二、Redis 安装指南

2.1 Linux(Ubuntu / Debian)安装

复制代码
sudo apt update
sudo apt install redis-server -y

检查版本:

复制代码
redis-server --version

启动 Redis:

复制代码
sudo systemctl start redis
sudo systemctl enable redis

2.2 macOS(Homebrew)安装

复制代码
brew update
brew install redis

启动 Redis:

复制代码
brew services start redis

或手动启动:

复制代码
redis-server

2.3 Docker 安装(推荐)

复制代码
docker run -d \
  --name redis \
  -p 6379:6379 \
  redis:7

查看容器:

复制代码
docker ps

三、Redis 安装验证与连接方式详解

3.1 redis-cli 连接方式(完整参数说明)

redis-cli 是 Redis 官方提供的命令行客户端,支持指定 IP、端口、密码、数据库编号 等参数。

3.1.1 基本连接(本机默认)
复制代码
redis-cli

等价于:

复制代码
redis-cli -h 127.0.0.1 -p 6379

3.1.2 指定 IP 和端口连接
复制代码
redis-cli -h 192.168.1.100 -p 6379

常见场景:

  • 连接远程 Redis

  • Docker / K8s 环境

  • 测试 / 预发环境


3.1.3 带密码连接(-a)
复制代码
redis-cli -h 127.0.0.1 -p 6379 -a yourpassword

⚠️ 安全提示

  • 命令行中明文密码可能被 ps 看到

  • 生产环境建议使用环境变量或 .rediscli 配置

示例(环境变量):

复制代码
export REDISCLI_AUTH=yourpassword
redis-cli -h 127.0.0.1 -p 6379

3.1.4 连接指定数据库(-n)

Redis 默认有 16 个数据库(0--15)。

复制代码
redis-cli -n 1

或:

复制代码
redis-cli -h 127.0.0.1 -p 6379 -a pwd -n 2

3.1.5 URI 方式连接(推荐)
复制代码
redis-cli -u redis://:password@127.0.0.1:6379/0

适合:

  • 脚本

  • CI / 自动化工具

  • 统一连接格式

    redis-cli

成功后进入:

复制代码
127.0.0.1:6379>

3.2 PING 测试与认证验证

复制代码
PING

返回:

复制代码
PONG

如果未认证:

复制代码
(error) NOAUTH Authentication required.

认证方式:

复制代码
AUTH yourpassword

PING

返回:

复制代码
PONG

👉 说明 Redis 服务 正常运行


3.3 查看 Redis 基本信息

复制代码
INFO

查看服务器信息:

复制代码
INFO server

查看内存使用:

复制代码
INFO memory

四、Redis 核心数据结构与使用语义

理解 Redis 的数据结构,比记住命令更重要

下面不仅列命令,还会说明:

  • 适合什么业务场景

  • 常见误用点



4.1 String(字符串)

最基础、最常用的数据类型。

常用命令

复制代码
SET key value
GET key
DEL key
EXISTS key

示例:

复制代码
SET name "redis"
GET name

设置过期时间(秒):

复制代码
SETEX token 60 "abc123"
TTL token

自增 / 自减(计数器):

复制代码
INCR count
DECR count

4.2 List(列表)

有序、可重复,常用于 消息队列

常用命令

复制代码
LPUSH list a b c
RPUSH list x y z
LRANGE list 0 -1
LPOP list
RPOP list

示例:

复制代码
LPUSH tasks task1
task2
LRANGE tasks 0 -1

阻塞式队列:

复制代码
BLPOP tasks 10

4.3 Set(集合)

无序、不重复。

常用命令

复制代码
SADD set a b c
SMEMBERS set
SISMEMBER set a
SREM set a

集合运算:

复制代码
SUNION set1 set2
SINTER set1 set2
SDIFF set1 set2

4.4 Hash(哈希)

适合存储 对象结构

常用命令

复制代码
HSET user:1 name tom age 18
HGET user:1 name
HGETALL user:1
HDEL user:1 age

是否存在字段:

复制代码
HEXISTS user:1 name

4.5 ZSet(有序集合)

带分数(score),常用于 排行榜

常用命令

复制代码
ZADD rank 100 alice 90 bob 80 tom
ZRANGE rank 0 -1 WITHSCORES
ZREVRANGE rank 0 -1 WITHSCORES

按分数范围查询:

复制代码
ZRANGEBYSCORE rank 80 100

五、Key 管理与通用命令

复制代码
KEYS *
SCAN 0
TYPE key
EXPIRE key 60
TTL key
PERSIST key

⚠️ 生产环境避免使用 KEYS * ,推荐 SCAN


六、Redis 配置文件(redis.conf)详解

Redis 的大多数行为由 redis.conf 控制,理解配置文件是生产使用的关键


6.1 redis.conf 文件位置

常见位置:

复制代码
/etc/redis/redis.conf          # Linux
/usr/local/etc/redis.conf      # macOS (brew)

启动时指定配置文件:

复制代码
redis-server /etc/redis/redis.conf

6.2 网络与安全配置(重点)

bind(监听地址)
复制代码
bind 127.0.0.1

含义:

  • 仅允许本机访问

允许远程访问:

复制代码
bind 0.0.0.0

protected-mode(保护模式)
复制代码
protected-mode yes
  • 未设置密码 + 监听公网时自动拒绝访问

  • 生产环境强烈建议保留


requirepass(访问密码)
复制代码
requirepass yourpassword

设置后:

  • 所有命令需认证

  • 客户端需使用 -aAUTH


port(端口)
复制代码
port 6379

6.3 数据库与 Key 空间配置

复制代码
databases 16

对应:

复制代码
SELECT 0
SELECT 1

6.4 内存管理配置(生产必看)

最大内存
复制代码
maxmemory 2gb
淘汰策略
复制代码
maxmemory-policy allkeys-lru

常见策略:

策略 说明
noeviction 不淘汰,写入报错
allkeys-lru 所有 key 使用 LRU(推荐)
volatile-lru 仅过期 key 使用 LRU

6.5 持久化配置(基础认知)

RDB(快照)
复制代码
save 900 1
save 300 10
save 60 10000
AOF(追加日志)
复制代码
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

七、Redis 服务管理与运行方式

7.1 systemctl 管理(Linux)

复制代码
sudo systemctl start redis
sudo systemctl stop redis
sudo systemctl restart redis
sudo systemctl status redis

7.2 前台 / 后台运行

复制代码
daemonize yes

日志文件:

复制代码
logfile /var/log/redis/redis.log

7.3 Docker Redis 常见配置

复制代码
docker run -d \
  --name redis \
  -p 6379:6379 \
  -v ./redis.conf:/usr/local/etc/redis/redis.conf \
  redis:7 \
  redis-server /usr/local/etc/redis/redis.conf

八、Redis 运维与排查命令合集

复制代码
INFO
INFO clients
INFO memory
INFO persistence
INFO replication
CLIENT LIST
MONITOR

查看慢查询:

复制代码
SLOWLOG GET 10

九、生产环境强烈建议

  • 一定要:

    • 设置 requirepass

    • 限制 bind

    • 设置 maxmemory

  • 避免:

    • KEYS *

    • 大 Key

    • 超大 Value


十、总结

到这里,你已经掌握了:

  • Redis 安装 & 验证

  • redis-cli 的 完整连接方式

  • redis.conf 的 核心配置项

  • 生产环境最关键的安全与内存设置

这已经是 工程级 Redis 入门

10.1 配置文件位置

常见路径:

复制代码
/etc/redis/redis.conf

关键配置:

复制代码
bind 0.0.0.0
protected-mode yes
requirepass yourpassword

10.2 重启 Redis

复制代码
sudo systemctl restart redis

或 Docker:

复制代码
docker restart redis

十一、常见问题排查

11.1 连接失败

复制代码
Could not connect to Redis

排查步骤:

  1. Redis 是否启动

  2. 端口是否监听(6379)

  3. 防火墙是否放行

  4. bind / requirepass 配置


11.2 内存占用过高

复制代码
INFO memory

可设置最大内存:

复制代码
maxmemory 2gb
maxmemory-policy allkeys-lru

十二、学习建议

  • 优先掌握:String / Hash / List

  • 配合业务理解:缓存、计数、队列

  • 后续进阶:

    • Redis 持久化(RDB / AOF)

    • 主从复制

    • 哨兵 & Cluster


十三、总结

Redis 是后端系统中必备组件 ,掌握基础命令 + 安装验证,已经可以覆盖 80% 实际工作场景

相关推荐
·云扬·2 小时前
MySQL Join关联查询:从算法原理到实战优化
数据库·mysql·算法
码农水水2 小时前
小红书Java面试被问:SQL语句的执行过程解析
数据库·sql
TG:@yunlaoda360 云老大2 小时前
华为云国际站代理商TaurusDB的读写分离可以应用于哪些场景?
服务器·网络·数据库·华为云
youngqqcn3 小时前
SQL中联表查询深入分析
数据库·sql
TG:@yunlaoda360 云老大3 小时前
华为云国际站代理商CSBS主要有什么作用呢?
运维·服务器·数据库·华为云
Java&Develop3 小时前
PL/SQL Developer可视化修改数据
数据库·sql
星哥说事3 小时前
SSL/TLS 证书管理,文件与数据库加密技术
数据库·网络协议·ssl
东东的脑洞3 小时前
【面试突击】深度解析:Redis 与数据库(DB)的一致性方案
数据库·redis·面试
爱学大树锯3 小时前
【快刷面试】-数据库-多线程在数据库中的应用
数据库·面试·多线程