Redis 使用记录

使用 Redis 很简单,一共分为三步:

1. 安装 Redis

macOS 安装 redis 很简单,按照官网安装说明,使用 Homebrew 安装即可:

bash 复制代码
brew install redis

Windows 安装略微复杂一点,因为我手边没有 Windows 电脑,就不提供安装方法了,教程很多。

2. 启动 Redis

运行以下命令,如果出现下图界面即表示运行成功:

bash 复制代码
redis-server

3. 项目引入 Redis

在项目里使用 redis 的时候,我们借助 ioredis 这个库,安装 ioredis:

bash 复制代码
npm install ioredis

在根目录下新建一个 lib文件夹,在 lib下新建一个名为 redis.js的文件,代码如下:

javascript 复制代码
import Redis from "ioredis";

const redis = new Redis();

const initialData = {
  1702459181837:
    '{"title":"sunt aut","content":"quia et suscipit suscipit recusandae","updateTime":"2023-12-13T09:19:48.837Z"}',
  1702459182837:
    '{"title":"qui est","content":"est rerum tempore vitae sequi sint","updateTime":"2023-12-13T09:19:48.837Z"}',
  1702459188837:
    '{"title":"ea molestias","content":"et iusto sed quo iure","updateTime":"2023-12-13T09:19:48.837Z"}',
};

export async function getAllNotes() {
  const data = await redis.hgetall("notes");
  if (Object.keys(data).length == 0) {
    await redis.hset("notes", initialData);
  }
  return await redis.hgetall("notes");
}

export async function addNote(data) {
  const uuid = Date.now().toString();
  await redis.hset("notes", [uuid], data);
  return uuid;
}

export async function updateNote(uuid, data) {
  await redis.hset("notes", [uuid], data);
}

export async function getNote(uuid) {
  return JSON.parse(await redis.hget("notes", uuid));
}

export async function delNote(uuid) {
  return redis.hdel("notes", uuid);
}

export default redis;

这块代码并不复杂,我们导出了 5 个函数,表示 5 个用于前后端交互的接口,分别是:

  1. 获取所有笔记的 getAllNotes,这里我们做了一个特殊处理,如果为空,就插入 3 条事先定义的笔记数据
  2. 添加笔记的 addNote
  3. 更新笔记的 updateNote
  4. 获取笔记的 updateNote
  5. 删除笔记的 delNote

其中我们使用了 ioredis 的 hash 结构(ioredis 提供了相关写法示例API 说明)。也就是说,我们在 redis 服务器中存储的数据大概长这样:

javascript 复制代码
{
  "1702459181837": '{"title":"sunt aut","content":"quia et suscipit suscipit recusandae","updateTime":"2023-12-13T09:19:48.837Z"}',
  "1702459182837": '{"title":"qui est","content":"est rerum tempore vitae sequi sint","updateTime":"2023-12-13T09:19:48.837Z"}',
  "1702459188837": '{"title":"ea molestias","content":"et iusto sed quo iure","updateTime":"2023-12-13T09:19:48.837Z"}'
}

使用 macOS 的同学可以再下载一个 Medis,用于查看 Redis 中的数据(当然此时 Redis 还没有写入这些数据):

其中,key 值用的是创建笔记时的时间戳,value 值是具体的笔记数据,分为 3 个字段,分别是 titlecontentupdateTime

相关推荐
IT_陈寒16 分钟前
Python开发者必看:这5个鲜为人知的Pandas技巧让你的数据处理效率提升50%
前端·人工智能·后端
豆苗学前端24 分钟前
写给女朋友的第一封信,测试方法概论
前端·后端·设计模式
武子康1 小时前
大数据-140 ClickHouse CollapsingMergeTree详解 外部数据源最小闭环HDFS/MySQL/Kafka
大数据·后端·nosql
m0_736927041 小时前
使用 Python 将 PowerPoint 转换为 Word 文档
java·开发语言·后端·职场和发展·c#
杜子不疼.1 小时前
【Rust】路由匹配与参数提取:从 match 语句到 axum 的类型魔法
开发语言·后端·rust
qq_12498707531 小时前
基于Flask的穷游网酒店数据分析系统(源码+论文+部署+安装)
后端·python·flask·毕业设计
稚辉君.MCA_P8_Java1 小时前
Java 基本数据类型 - 四类八种
java·linux·后端·mysql·架构
爱吃烤鸡翅的酸菜鱼2 小时前
如何掌握【Java】 IO/NIO设计模式?工厂/适配器/装饰器/观察者模式全解析
java·开发语言·后端·设计模式·nio
golang学习记2 小时前
替代Postman,Github 38k star,这款API工具彻底火了!
后端
狂奔小菜鸡2 小时前
Day7 | Java的流程控制详解
java·后端·编程语言