当前位置: 首页 > news >正文

Redis 初学者指南

Redis 初学者指南

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

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

网站:https://redis.io/

1. 什么是 Redis?

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

2. Redis 的基本概念

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

3. 安装 Redis

3.1 使用 Docker 安装

docker run --name myredis -p 6379:6379 -d redis

3.2 从源码编译安装

  1. 下载 Redis 源码:

    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. 编译并安装:

    make
    sudo make install
    

4. 基本操作

4.1 启动 Redis 服务

redis-server

4.2 连接 Redis 客户端

redis-cli

4.3 常用命令

  • 设置键值对

    SET key "value"
    
  • 获取键值

    GET key
    
  • 删除键

    DEL key
    
  • 检查键是否存在

    EXISTS key
    

5. Redis 的数据结构

5.1 字符串

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

SET mykey "Hello"
GET mykey

5.2 列表

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

LPUSH mylist "world"
LPUSH mylist "hello"
LRANGE mylist 0 -1

5.3 集合

无序的字符串集合。

SADD myset "Hello"
SADD myset "World"
SMEMBERS myset

5.4 散列

用于存储键值对集合。

HSET myhash field1 "value1"
HGET myhash field1

5.5 有序集合

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

ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZRANGE myzset 0 -1

6. 高级特性

6.1 持久化

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

6.2 事务

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

MULTI
SET key1 "value1"
SET key2 "value2"
EXEC

6.3 发布/订阅

用于实现消息通信。

SUBSCRIBE channel
PUBLISH channel "message"

6.4 Lua 脚本

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

EVAL "return redis.call('SET', KEYS[1], ARGV[1])" 1 key value

7. 进阶学习

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

8. 结论

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

http://www.lryc.cn/news/473781.html

相关文章:

  • node.js_npm : 无法加载文件 D:\Program Files\nodejs\npm.ps1
  • 技术星河中的璀璨灯塔 —— 青云交的非凡成长之路
  • 使用 Git 命令将本地项目上传到 GitLab
  • JavaScript的第十三天
  • el-table 滚动条重置 手动控制滚动条
  • 详细分析Vue3中的provide和inject基本知识(附Demo)
  • spring集成kafka
  • el-form表单中含有el-input按回车自动刷新如何阻止
  • Spring Boot2.x教程:(十)从Field injection is not recommended谈谈依赖注入
  • 在 Android Studio 上运行 Java 的 main 函数
  • 【Nas】X-DOC:Mac mini 安装 ZeroTier 并替换 planet 实现内网穿透
  • Spring Boot 集成 RabbitMQ
  • 存在sql注入的公网站点
  • linux之网络子系统- 内核发送数据包流程以及相关实际问题
  • UDP 实现的 Echo Server 和 Echo Client 回显程序
  • AUTOSAR CP MCAL微控制器抽象层介绍
  • SpringBoot应用部署到Docker中MySQL8时间戳相差8小时问题及处理方式
  • 飞桨首创 FlashMask :加速大模型灵活注意力掩码计算,长序列训练的利器
  • 【含文档+源码】基于SpringBoot+Vue的新型吃住玩一体化旅游管理系统的设计与实现
  • 【网络安全】揭示 Web 缓存污染与欺骗漏洞
  • PHP如何防止防止源代码的暴露
  • C++智能指针的实现
  • 硅谷(12)菜单管理
  • 定子调压调速系统
  • 从APP小游戏到Web漏洞的发现
  • 设计模式07-结构型模式(装饰模式/外观模式/代理模式/Java)
  • C# 广播技术——发现局域网设备技术——
  • 【QA】windows和linux陷入系统调用后有什么区别?
  • Github 2024-11-01 开源项目月报 Top19
  • Python实现深度学习模型预测控制(tensorflow)DL-MPC(Deep Learning Model Predictive Control