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。

相关推荐
云飞云共享云桌面7 小时前
医疗器械设备研发:多人同时操作 SolidWorks,怎样依靠单台服务器替代多工作站
运维·服务器·网络·数据库·制造
知行合一。。。13 小时前
RAG--03--Milvus基本用法
数据库·oracle·milvus
TDengine (老段)13 小时前
TDengine 线程模型 — 网络、调度、执行
大数据·数据库·物联网·制造·时序数据库·tdengine·涛思数据
上学的小垃圾14 小时前
01-数据库系统概述
数据库
二进制漫游记15 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
2501_9289962215 小时前
GPT-4o换DeepSeek迁移成本多少?中科热备解析API聚合平台技术账本
前端·数据库·人工智能
莫得感情 o15 小时前
Redis 05 · 持久化:RDB 与 AOF 怎么保证数据不丢
redis·缓存
curd_boy16 小时前
【Redis】Redis从缓存到AI向量平台
人工智能·redis·缓存
kiracrimson17 小时前
从缓存的角度看链表与线性表的差异
数据结构·链表·缓存
泡干脆面就番茄17 小时前
MySQL_子查询_分页查询与联合查询详解
数据库·mysql