欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > Redis 教程

Redis 教程

2025/4/19 10:18:33 来源:https://blog.csdn.net/wscfan/article/details/147245165  浏览:    关键词:Redis 教程

Redis 教程

Redis (Remote Dictionary Server) 是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。本教程将介绍 Redis 的基础知识和常用操作。

1. Redis 简介

Redis 是一个高性能的键值对数据库,与传统的关系型数据库不同,Redis 将数据存储在内存中,因此读写速度非常快。Redis 支持多种数据类型,包括字符串、哈希表、列表、集合和有序集合等。

主要特点

  • 高性能:所有数据存储在内存中,读写速度极快
  • 持久化:支持数据持久化到磁盘
  • 数据结构丰富:支持多种数据类型
  • 原子操作:所有操作都是原子性的
  • 支持事务:可以批量执行多个命令
  • 支持主从复制:实现高可用性
  • 支持 Lua 脚本:可以执行 Lua 脚本

2. 安装 Redis

Linux 上安装

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install redis-server# CentOS/RHEL
sudo yum install epel-release
sudo yum install redis

macOS 上安装

brew install redis

Windows 上安装

Windows 不是 Redis 的官方支持平台,但可以通过以下方式安装:

  1. 使用 WSL (Windows Subsystem for Linux)
  2. 下载适用于 Windows 的 Redis 版本:https://github.com/tporadowski/redis/releases

启动 Redis 服务器

# 启动服务
redis-server# 以守护进程方式启动
redis-server --daemonize yes

3. Redis 基本命令

连接到 Redis

redis-cli

基本操作

# 测试连接
PING
# 返回 PONG# 设置键值对
SET key value# 获取值
GET key# 删除键
DEL key# 检查键是否存在
EXISTS key# 设置过期时间(秒)
EXPIRE key seconds# 查看剩余过期时间
TTL key# 查看所有键
KEYS *# 清空所有数据
FLUSHALL

4. Redis 数据类型及操作

字符串 (String)

# 设置字符串
SET name "John"# 获取字符串
GET name# 追加内容
APPEND name " Doe"# 获取字符串长度
STRLEN name# 增加数值
SET counter 10
INCR counter    # 增加 1
INCRBY counter 5    # 增加 5# 减少数值
DECR counter    # 减少 1
DECRBY counter 5    # 减少 5

哈希表 (Hash)

# 设置哈希表字段
HSET user name "John"
HSET user age 30# 同时设置多个字段
HMSET user email "john@example.com" city "New York"# 获取字段值
HGET user name# 获取所有字段和值
HGETALL user# 删除字段
HDEL user city# 检查字段是否存在
HEXISTS user email

列表 (List)

# 从左侧添加元素
LPUSH todos "Buy groceries"
LPUSH todos "Clean house"# 从右侧添加元素
RPUSH todos "Read book"# 获取列表范围内的元素
LRANGE todos 0 -1    # 获取全部元素# 获取列表长度
LLEN todos# 移除并返回左侧第一个元素
LPOP todos# 移除并返回右侧第一个元素
RPOP todos

集合 (Set)

# 添加元素到集合
SADD colors "red"
SADD colors "blue" "green"# 获取集合所有元素
SMEMBERS colors# 检查元素是否存在
SISMEMBER colors "red"# 获取集合元素数量
SCARD colors# 移除元素
SREM colors "red"# 集合操作
SADD set1 "a" "b" "c"
SADD set2 "c" "d" "e"
SINTER set1 set2    # 交集
SUNION set1 set2    # 并集
SDIFF set1 set2     # 差集

有序集合 (Sorted Set)

# 添加元素和分数
ZADD leaderboard 100 "Alice"
ZADD leaderboard 85 "Bob"
ZADD leaderboard 95 "Charlie"# 获取元素的分数
ZSCORE leaderboard "Alice"# 获取排名
ZRANK leaderboard "Alice"    # 从低到高
ZREVRANK leaderboard "Alice"    # 从高到低# 按分数范围获取元素
ZRANGE leaderboard 0 -1    # 所有元素(从低到高)
ZREVRANGE leaderboard 0 -1    # 所有元素(从高到低)
ZRANGEBYSCORE leaderboard 90 100    # 分数在 90-100 之间的元素

5. Redis 高级特性

事务

Redis 事务允许在一个步骤中执行多个命令:

# 开始事务
MULTI# 添加命令到队列
SET user:1:name "John"
SET user:1:age 30
SADD active_users 1# 执行事务
EXEC# 取消事务
DISCARD

发布/订阅

Redis 可以作为消息系统使用:

# 订阅频道(在一个客户端中运行)
SUBSCRIBE news# 向频道发布消息(在另一个客户端中运行)
PUBLISH news "Breaking news: Redis is awesome!"

持久化

Redis 提供两种持久化方式:

  1. RDB (Redis Database):按照指定的时间间隔将数据集快照保存到磁盘。
  2. AOF (Append Only File):记录服务器接收的每一个写操作。

redis.conf 中配置:

# RDB 配置
save 900 1        # 900秒(15分钟)内至少有1个键被修改则保存
save 300 10       # 300秒(5分钟)内至少有10个键被修改则保存
save 60 10000     # 60秒内至少有10000个键被修改则保存# AOF 配置
appendonly yes
appendfsync everysec    # 每秒同步一次

6. Redis 安全性

设置密码

redis.conf 中:

requirepass yourpassword

使用密码连接:

redis-cli -a yourpassword
# 或者连接后认证
AUTH yourpassword

限制访问

redis.conf 中:

bind 127.0.0.1    # 只监听本地连接

7. Redis 实用工具

Redis-benchmark:性能测试工具

redis-benchmark -n 100000 -c 50

Redis 数据备份与恢复

# 备份
SAVE    # 同步保存
BGSAVE    # 异步保存# 恢复
# 只需将 dump.rdb 文件放到 Redis 工作目录

8. Redis 常见应用场景

  • 缓存:减轻数据库负载
  • 会话存储:存储用户会话数据
  • 排行榜/计数器:利用有序集合实现
  • 消息队列:使用列表或发布/订阅功能
  • 实时分析:利用高性能特性处理实时数据
  • 地理位置应用:使用 GEO 命令支持

9. 总结

Redis 是一个功能强大的内存数据存储系统,具有高性能、灵活性和丰富的数据结构。本教程介绍了 Redis 的基础知识和常用操作,希望能帮助你开始使用 Redis。随着深入学习,你将发现 Redis 在各种场景下的更多应用可能性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词