Nodejs 第四十八章(ioredis)

2024-03-06 22:04

本文主要是介绍Nodejs 第四十八章(ioredis),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ioredis 是一个强大且流行的 Node.js 库,用于与 Redis 进行交互。Redis 是一个开源的内存数据结构存储系统。ioredis 提供了一个简单高效的 API,供 Node.js 应用程序与 Redis 服务器进行通信。

以下是 ioredis 的一些主要特点:

  1. 高性能:ioredis 设计为快速高效。它支持管道操作,可以在一次往返中发送多个 Redis 命令,从而减少网络延迟。它还支持连接池,并且可以在连接丢失时自动重新连接到 Redis 服务器。
  2. Promises 和 async/await 支持:ioredis 使用 promises,并支持 async/await 语法,使得编写异步代码和处理 Redis 命令更加可读。
  3. 集群和 sentinel 支持:ioredis 内置支持 Redis 集群和 Redis Sentinel,这是 Redis 的高级功能,用于分布式设置和高可用性。它提供了直观的 API,用于处理 Redis 集群和故障转移场景。
  4. Lua 脚本:ioredis 允许你使用 eval 和 evalsha 命令在 Redis 服务器上执行 Lua 脚本。这个功能使得你可以在服务器端执行复杂操作,减少客户端与服务器之间的往返次数。
  5. 发布/订阅和阻塞命令:ioredis 支持 Redis 的发布/订阅机制,允许你创建实时消息系统和事件驱动架构。它还提供了对 BRPOP 和 BLPOP 等阻塞命令的支持,允许你等待项目被推送到列表中并原子地弹出它们。
  6. 流和管道:ioredis 支持 Redis 的流数据类型,允许你消费和生成数据流。它还提供了一种方便的方式将多个命令进行管道化,减少与服务器之间的往返次数。

使用方法

安装

npm i ioredis

连接redis

import Ioredis from 'ioredis'const ioredis = new Ioredis({host: '127.0.0.1', //ipport: 6379, //端口
})
  1. 字符串
//存储字符串并且设置过期时间
ioredis.setex('key', 10, 'value') 
//普通存储
ioredis.set('key', 'value')
//读取
ioredis.get('key')
  1. 集合
// 添加元素到集合
redis.sadd('myset', 'element1', 'element2', 'element3');// 从集合中移除元素
redis.srem('myset', 'element2');// 检查元素是否存在于集合中
redis.sismember('myset', 'element1').then((result) => {console.log('Is member:', result); // true});// 获取集合中的所有元素
redis.smembers('myset').then((members) => {console.log('Members:', members);});
  1. 哈希
// 设置哈希字段的值
redis.hset('myhash', 'field1', 'value1');
redis.hset('myhash', 'field2', 'value2');// 获取哈希字段的值
redis.hget('myhash', 'field1').then((value) => {console.log('Value:', value); // "value1"});// 删除哈希字段
redis.hdel('myhash', 'field2');// 获取整个哈希对象
redis.hgetall('myhash').then((hash) => {console.log('Hash:', hash); // { field1: 'value1' }});
  1. 队列
// 在队列的头部添加元素
redis.lpush('myqueue', 'element1');
redis.lpush('myqueue', 'element2');// 获取队列中所有元素
redis.lrange('myqueue', 0, -1).then((elements) => {console.log('Queue elements:', elements);});
//获取长度
redis.llen('myqueue').then((length) => {console.log('Queue length:', length);
});

发布订阅

// 引入 ioredis 库
import Ioredis from 'ioredis';// 创建与 Redis 服务器的连接
const ioredis = new Ioredis({host: '127.0.0.1',port: 6379,
});// 创建另一个 Redis 连接实例
const redis2 = new Ioredis();// 订阅频道 'channel'
ioredis.subscribe('channel');// 监听消息事件
ioredis.on('message', (channel, message) => {console.log(`Received a message from channel ${channel}: ${message}`);
});// 发布消息到频道 'channel'
redis2.publish('channel', 'hello world');

这篇关于Nodejs 第四十八章(ioredis)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/781503

相关文章

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

nvm及nodejs安装相关

安装 1.清空文件夹,卸载nvm及nodejs 2.下载安装包 https://github.com/coreybutler/nvm-windows/releases (也下载有) 3.安装nvm 地址写D:/nvm和D:/nodejs 4.安装nodejs nvm ls available //查询版本nvm install 16.20.2 //安装对应版本号nvm use 1

Nodejs的Express框架使用总结

初始安装express,你也可以通过编辑器的shell安装依赖,比如vs # 创建并切换到 myapp 目录mkdir myappcd myapp# 初始化 package.json 文件npm init -y# 安装 express 到项目中npm i express 新建一个基础的接口 // 0. 加载 Expressconst express = require('expre

YApi 接口管理开源工具 nodejs+ mongoDB

前言介绍 Yapi 由 YMFE 开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护 API。 权限管理 YApi 成熟的团队管理扁平化项目权限配置满足各类企业的需求 可视化接口管理 基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率 Mock Server 易用的 Mock Server,

linux 安装 nodejs

1、去官网下载和自己系统匹配的文件:  英文网址:https://nodejs.org/en/download/  中文网址:http://nodejs.cn/download/  通过  uname -a  命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系统),如图 故下载一下红色框中文件 ,版本为v6.10.0 2、

【NodeJS】Error: Cannot find module 'ms'

转载自:http://blog.csdn.net/echo_ae/article/details/75097004 问题: Error: Cannot find module 'ms'at Function.Module._resolveFilename (module.js:469:15)at Function.Module._load (module.js:417:25)at Module

【NodeJS】如何安装淘宝cnpm

工具官网 Node.js淘宝 NPM 镜像 安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 输入cnpm -v查看是否正常(前提是你已经设置好了环境变量) cnpm -v 如果想给npm添加淘宝镜像,请参考: 【NodeJS】修改npm的registry为淘宝镜像(npm.taobao.o

【NodeJS】Unexpected token (109:0) 返回错误码500

刚开始报错是这样的: Unexpected token call 是什么我没看懂,但我发现 span.label.lable-success 后面的 #[i+1] 写错了,应该是 #{i+1} 改成完这个错误后又是一个错误提示: What? Unexpected token (109:0) 返回错误码500是什么鬼 我先将自己这段源码的 - if ... - else 检查下

怎么利用NodeJS发送视频短信

随着5G时代的来临,企业的数字化转型步伐日益加快,视频短信作为新兴的数字营销工具,正逐步展现出其大的潜力。视频群发短信以其独特的形式和内容,将图片、文字、视频、声音融为一体,为用户带来全新的直观感受,为企业营销注入新的活力。 支持免费对接试用乐讯通PaaS平台 找好用的短信平台,选择乐讯通,短信群发|短信平台|群发短信软件|群发短信平台|乐讯通PaaS平台http://yun.loktong

Nodejs 串口通信 : websocket , serialport

最近在学习如何实现web页面和串口间通信,网页请求使用websocket,实现的基本功能如下: 1、基本需求:硬件:有两个信号灯(TLA-505-1T),一个485继电器(开关),电压转换器,工业触屏一体机。 2、原理图:                  3工作原理: 首先一体机中采用node开发服务器,网页请求采用websocket协议,直接放代码了: var express