Redis 初学者指南

Redis 初学者指南

    • [1. 什么是 Redis?](#1. 什么是 Redis?)
    • [2. Redis 的基本概念](#2. Redis 的基本概念)
    • [3. 安装 Redis](#3. 安装 Redis)
      • [3.1 使用 Docker 安装](#3.1 使用 Docker 安装)
      • [3.2 从源码编译安装](#3.2 从源码编译安装)
    • [4. 基本操作](#4. 基本操作)
      • [4.1 启动 Redis 服务](#4.1 启动 Redis 服务)
      • [4.2 连接 Redis 客户端](#4.2 连接 Redis 客户端)
      • [4.3 常用命令](#4.3 常用命令)
    • [5. Redis 的数据结构](#5. Redis 的数据结构)
      • [5.1 字符串](#5.1 字符串)
      • [5.2 列表](#5.2 列表)
      • [5.3 集合](#5.3 集合)
      • [5.4 散列](#5.4 散列)
      • [5.5 有序集合](#5.5 有序集合)
    • [6. 高级特性](#6. 高级特性)
      • [6.1 持久化](#6.1 持久化)
      • [6.2 事务](#6.2 事务)
      • [6.3 发布/订阅](#6.3 发布/订阅)
      • [6.4 Lua 脚本](#6.4 Lua 脚本)
    • [7. 进阶学习](#7. 进阶学习)
    • [8. 结论](#8. 结论)

Redis 是一个开源的内存数据结构存储系统,常用于缓存、会话管理、实时分析等场景。本文将带你从入门到精通 Redis,包括其基本概念、数据结构、安装配置、常用操作以及高级特性。

网站:https://redis.io/

1. 什么是 Redis?

Redis 是一个基于内存的 NoSQL 数据库,以键值对的形式存储数据。它支持多种数据结构,如字符串、散列、列表、集合、有序集合等。

2. Redis 的基本概念

  • 键值对存储:Redis 中的数据都是以键值对的形式存储的。
  • 持久化:Redis 支持数据持久化,以防止数据丢失。
  • 事务:支持简单的事务操作。
  • 发布/订阅:支持消息订阅和发布功能。
  • Lua 脚本:支持在服务器端运行 Lua 脚本。
  • 高可用性:通过哨兵和集群模式提供高可用性。

3. 安装 Redis

3.1 使用 Docker 安装

bash 复制代码
docker run --name myredis -p 6379:6379 -d redis

3.2 从源码编译安装

  1. 下载 Redis 源码:

    bash 复制代码
    wget http://download.redis.io/releases/redis-6.2.6.tar.gz
    tar xzf redis-6.2.6.tar.gz
    cd redis-6.2.6
  2. 编译并安装:

    bash 复制代码
    make
    sudo make install

4. 基本操作

4.1 启动 Redis 服务

bash 复制代码
redis-server

4.2 连接 Redis 客户端

bash 复制代码
redis-cli

4.3 常用命令

  • 设置键值对

    bash 复制代码
    SET key "value"
  • 获取键值

    bash 复制代码
    GET key
  • 删除键

    bash 复制代码
    DEL key
  • 检查键是否存在

    bash 复制代码
    EXISTS key

5. Redis 的数据结构

5.1 字符串

最基本的数据类型,可以存储任何类型的数据。

bash 复制代码
SET mykey "Hello"
GET mykey

5.2 列表

用于存储有序的字符串列表。

bash 复制代码
LPUSH mylist "world"
LPUSH mylist "hello"
LRANGE mylist 0 -1

5.3 集合

无序的字符串集合。

bash 复制代码
SADD myset "Hello"
SADD myset "World"
SMEMBERS myset

5.4 散列

用于存储键值对集合。

bash 复制代码
HSET myhash field1 "value1"
HGET myhash field1

5.5 有序集合

带有分数的集合,自动排序。

bash 复制代码
ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZRANGE myzset 0 -1

6. 高级特性

6.1 持久化

  • RDB 快照:定期将数据快照保存到磁盘。
  • AOF 日志:记录每次写操作,以日志形式保存。

6.2 事务

通过 MULTIEXEC 命令实现简单的事务。

bash 复制代码
MULTI
SET key1 "value1"
SET key2 "value2"
EXEC

6.3 发布/订阅

用于实现消息通信。

bash 复制代码
SUBSCRIBE channel
PUBLISH channel "message"

6.4 Lua 脚本

在 Redis 服务器上运行 Lua 脚本。

bash 复制代码
EVAL "return redis.call('SET', KEYS[1], ARGV[1])" 1 key value

7. 进阶学习

  • 深入理解 Redis 内部机制:阅读 Redis 的源码和官方文档。
  • 实践项目:尝试构建一个简单的缓存系统或消息队列。
  • 社区资源:参与 Redis 社区,关注 Redis 的最新动态和最佳实践。

8. 结论

Redis 是一个功能强大且灵活的数据存储解决方案,适合多种应用场景。通过这篇文章,你应该对 Redis 的基本功能和高级特性有了初步的了解。继续深入学习和实践,将帮助你更好地掌握 Redis。

相关推荐
highreport24 分钟前
HighReport报表工具定时调度和邮件定时发送
运维·服务器·数据库
01_ice32 分钟前
数据库基础
数据库
deepdata_cn1 小时前
向量数据库是非结构化数据的AI检索底座
数据库·人工智能
梁辰兴1 小时前
软件工程:数据库设计
数据库·软件工程·数据库设计·逻辑设计·概念设计·梁辰兴·物理设计
10mAh1 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
J_bean1 小时前
剖析 MySQL InnoDB 共享行锁 (S) & 排他行锁 (X)
数据库·mysql·共享行锁·s lock·排他行锁·x lock
Lumistory1 小时前
城市景观亮化设施维护管养的核心痛点与标准化解决方案
数据库·光照贴图
技术长镜头1 小时前
别再只说“走 B+Tree”:一条 SQL 在 InnoDB 中的完整寻址过程
后端·mysql
天疆说2 小时前
04 稳定性与性能调优实录:OOM 崩溃、并发槽位、前缀缓存与 DSpark 调参
linux·运维·缓存
倒流时光三十年2 小时前
第六阶段 57 · ES|QL 与 SQL API(用 SQL 查 ES)
数据库·sql·elasticsearch