目录
一、Redis 是什么?为什么要用它?
Redis,全称 Remote Dictionary Server,即远程字典服务 ,是一个开源的、基于内存的数据结构存储系统,可用作数据库、缓存和消息中间件。因其将数据存储在内存中,所以具备极快的读写速度,能达到每秒数万次甚至更高的读写性能,适用于对性能要求极高的场景。同时,Redis 支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等。不同的数据结构适用于不同的应用场景,例如,字符串可以用于存储简单的键值对,哈希可以用于存储对象,列表可以用于实现消息队列等。并且,Redis 还提供了两种持久化方式,分别是 RDB(Redis Database Backup)和 AOF(Append Only File)。RDB 将内存中的数据以快照的形式保存到磁盘上,AOF 则是将每次写操作追加到一个日志文件中。这两种方式可以单独使用,也可以同时使用,以确保数据的安全性和可靠性。此外,Redis 还支持通过集群的方式来扩展其存储容量和性能。Redis 集群采用分布式架构,将数据分散存储在多个节点上,实现了数据的自动分片和负载均衡。同时,Redis 还支持事务操作,允许在一个事务中执行多个命令,并且可以保证这些命令的原子性和一致性。
为了让大家更直观地理解 Redis 的优势,我们来对比一下传统的关系型数据库,比如 MySQL。在数据结构方面,MySQL 以二维表格形式存储数据,数据结构相对固定,字段和表结构在创建时就需要明确指定,后期修改较为复杂。而 Redis 支持字符串、哈希、列表、集合、有序集合等丰富的数据结构 ,能更灵活地适应各种业务场景。性能表现上,MySQL 数据存储在磁盘,读写时需要磁盘 I/O 操作,速度相对较慢,在高并发场景下,磁盘 I/O 容易成为性能瓶颈。Redis 数据存储在内存中,读写速度极快,能轻松应对每秒数万次甚至更高的读写请求,非常适合处理高并发读写的场景。在应用场景方面,MySQL 适用于对数据一致性和事务完整性要求较高的场景,如银行转账、订单处理等事务性操作。Redis 则更适合作为缓存,减轻数据库压力,提升系统响应速度;还可以用于实现分布式锁、消息队列、实时统计等功能。
举个简单的例子,假如你运营一个热门的电商网站,在促销活动期间,大量用户同时访问商品详情页。如果每次请求都直接查询 MySQL 数据库,数据库很可能不堪重负,导致响应缓慢甚至崩溃。而使用 Redis 作为缓存,将商品的基本信息(如商品名称、价格、图片等)存储在 Redis 中,用户请求时先从 Redis 中获取数据。由于 Redis 的高速读写性能,能快速响应请求,大大提升用户体验,同时也减轻了 MySQL 数据库的压力。所以,在高性能、高并发的场景下,Redis 凭借其独特的优势,成为了众多开发者优化系统性能的得力工具。
二、Redis 基础入门
2.1 安装与启动
安装 Redis 前,请先确保你的系统已经安装了必要的依赖环境,如 gcc、make 等工具。不同操作系统下 Redis 的安装步骤和启动方法各有差异,下面将为你详细介绍:
- Linux 系统:使用包管理器安装 Redis 较为简单,以 Ubuntu 系统为例,在终端输入命令sudo apt-get update更新软件包列表,接着输入sudo apt-get install redis-server即可完成安装。安装完成后,可使用命令sudo systemctl start redis-server启动 Redis 服务,使用sudo systemctl status redis-server查看服务状态。若看到 “active (running)” 字样,即表示 Redis 服务已成功启动 。此外,你还可以通过编辑配置文件/etc/redis/redis.conf来修改 Redis 的默认配置,如绑定 IP 地址、端口号等。
- Windows 系统:由于 Redis 官方不直接支持在纯 Windows 环境下安装,推荐使用 Windows Subsystem for Linux(WSL)来安装 Redis。首先,在 Microsoft Store 中安装你喜欢的 Linux 发行版,如 Ubuntu。安装完成后,打开 Linux 子系统,按照 Linux 系统的安装步骤进行 Redis 的安装与启动。另外,也有一些大神制作了 Windows 版本的 Redis 安装包,你可以从相关网站下载并按照提示进行安装,但这种方式可能存在一些兼容性问题 。
- macOS 系统:借助 Homebrew 包管理器,安装过程变得非常便捷。在终端中输入brew install redis即可开始安装。安装完成后,使用brew services start redis启动 Redis 服务 ,使用redis-cli ping命令来测试 Redis 是否正常运行,若返回 “PONG”,则说明安装和启动成功。
2.2 基本数据类型与操作
Redis 支持多种数据类型,每种数据类型都有其独特的用途和操作方法,以下是几种常见的数据类型及其操作示例:
- 字符串(String):是 Redis 最基本的数据类型,一个键对应一个值,可用于存储文本、数字、JSON 等各种类型的数据。其最大能存储 512MB 的数据。常用命令有:
-
- SET key value:设置指定键的值,如SET name "张三",将键name的值设置为 “张三”。
-
- GET key:获取指定键的值,执行GET name,就可以得到键name的值 “张三”。
-
- INCR key:将键的值增加 1,前提是键的值为数字类型,比如SET num 5,然后执行INCR num,此时num的值变为 6。
-
- DECR key:将键的值减少 1,同样要求键的值为数字类型,如执行DECR num,num的值变为 5。
- 哈希(Hash):是一个键值对集合,特别适合用于存储对象,每个哈希可以储存 (2^32)-1 个键值对,即 40 多亿个。假设我们要存储一个用户信息,命令操作如下:
-
- HSET key field value:设置哈希表中指定字段的值,如HSET user:1 name "李四",表示在user:1这个哈希表中,设置name字段的值为 “李四”。
-
- HGET key field:获取哈希表中