注:图来自黑马
一、NoSQL 与 SQL 的对比
在学习 Redis 之前,先了解 NoSQL 和 SQL 的区别,能帮助我们更好地理解 Redis 这类 NoSQL 数据库的应用场景。
对比维度 | SQL(关系型数据库) | NoSQL(非关系型数据库) |
---|---|---|
数据结构 | 基于表和关系(行、列),有固定 schema | 多样(键值对、文档、列族、图等),无固定 schema |
事务支持 | 强事务性(ACID 特性) | 多数不支持强事务,侧重最终一致性 |
扩展性 | 垂直扩展(升级硬件)为主,水平扩展复杂 | 天然支持水平扩展(分片) |
适用场景 | 结构化数据、复杂查询、事务需求(如银行交易) | 非结构化 / 半结构化数据、高并发读写、大数据量存储(如社交数据、缓存) |
代表产品 | MySQL、Oracle、PostgreSQL | Redis(键值)、MongoDB(文档)、HBase(列族) |
二、Redis 的特点
Redis(Remote Dictionary Server)是一款开源的高性能键值对数据库,其核心特点如下:
- 基于内存存储:数据主要存放在内存中,读写速度极快(秒级处理 10 万 + 请求),适合作为缓存使用。
- 支持多种数据结构:不仅有字符串(String),还支持哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等,满足复杂业务需求。
- 持久化机制:通过 RDB(快照)和 AOF(日志)两种方式将内存数据持久化到磁盘,避免数据丢失。
- 单线程模型:避免了多线程切换的开销,同时通过 IO 多路复用机制处理并发请求,效率极高。
- 支持集群和主从复制:可通过主从复制实现数据备份,通过集群扩展存储容量和并发能力。
- 原子操作:所有命令都是原子性的,保证了数据操作的一致性(如 incr 命令对计数器的原子递增)。
三、Redis 在 Linux 环境下的启动
以下是在 Linux 中安装并启动 Redis 的步骤(以 centos8 为例):
1. 启动 Redis 服务
# 启动Redis(默认后台运行)
sudo systemctl start redis-server
# 查看Redis运行状态(若显示"active (running)"则启动成功)
sudo systemctl status redis-server
# 设置开机自启动
sudo systemctl enable redis-server
2. 验证启动是否成功
# 查看Redis进程
ps -ef | grep redis
四、Redis 的简单命令行使用
Redis 提供了命令行客户端redis-cli
,用于与 Redis 服务器交互。
1. 登录 Redis 服务器
默认情况下,Redis 无需密码即可本地连接(生产环境需配置密码):
redis-cli -h 192.168.1.100 -p 6379 # -h指定IP,-p指定端口
# 若配置了密码,登录时需验证
redis-cli -a your_password # 或连接后输入AUTH your