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。

相关推荐
forestsea10 分钟前
全解:Redis RDB持久化和AOF持久化
数据库·redis·缓存
叫我DPT11 分钟前
分享一个python启动文件脚本(django示例)
数据库·python·django
小五Z40 分钟前
Redis--事务
redis·分布式·后端·缓存
XXYBMOOO1 小时前
基于 Qt 的 BMP 图像数据存取至 SQLite 数据库的实现
数据库·c++·qt
Sunlight_7771 小时前
第五章 SQLite数据库:1、SQLite 基础语法及使用案例
java·linux·服务器·jvm·数据库·tcp/ip·sqlite
JhonKI1 小时前
【从零实现高并发内存池】内存池整体框架设计 及 thread cache实现
java·redis·缓存
嘉嘉king1 小时前
Mysql联表查询
数据库
镜舟科技2 小时前
NoSQL 与 NewSQL 全面对比:如何选择适合你的数据库方案?
数据库·starrocks·nosql·newsql·技术架构·实时数据分析
TDengine (老段)2 小时前
TDengine 语言连接器(Node.js)
大数据·c语言·数据库·物联网·node.js·时序数据库·tdengine
洛神灬殇2 小时前
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 时间事件处理部分)
redis·后端