4 node操作redis

1. redis

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,它提供了一个高效的键值存储解决方案,并支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)等。它被广泛应用于缓存、消息队列、实时统计等场景。

1.1 Redis与mysql的区别?

Redis是放在io操作效率更高放在内存中的,mysql是放在磁盘中的的

1.2 以下是一些关键特性和用途介绍:

  1. 内存存储:Redis主要将数据存储在内存中,因此具有快速的读写性能。它可以持久化数据到磁盘,以便在重新启动后恢复数据。
  2. 多种数据结构:Redis不仅仅是一个简单的键值存储,它支持多种数据结构,如字符串、哈希、列表、集合和有序集合。这些数据结构使得Redis能够更灵活地存储和操作数据。
  3. 发布/订阅:Redis支持发布/订阅模式,允许多个客户端订阅一个或多个频道,以接收实时发布的消息。这使得Redis可以用作实时消息系统。
  4. 事务支持:Redis支持事务,可以将多个命令打包成一个原子操作执行,确保这些命令要么全部执行成功,要么全部失败。
  5. 持久化:Redis提供了两种持久化数据的方式:RDB(Redis Database)和AOF(Append Only File)。RDB是将数据以快照形式保存到磁盘,而AOF是将每个写操作追加到文件中。这些机制可以确保数据在意外宕机或重启后的持久性。
  6. 高可用性:Redis支持主从复制和Sentinel哨兵机制。通过主从复制,可以创建多个Redis实例的副本,以提高读取性能和容错能力。Sentinel是一个用于监控和自动故障转移的系统,它可以在主节点宕机时自动将从节点提升为主节点。
  7. 缓存:由于Redis具有快速的读写性能和灵活的数据结构,它被广泛用作缓存层。它可以将常用的数据存储在内存中,以加快数据访问速度,减轻后端数据库的负载。
  8. 实时统计:Redis的计数器和有序集合等数据结构使其非常适合实时统计场景。它可以存储和更新计数器,并对有序集合进行排名和范围查询,用于统计和排行榜功能

1.3 windows安装redis才能使用

2 ioredis

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

下载依赖

npm i ioredis

2.0 连接redis

import Ioredis from 'ioredis'

const ioredis = new Ioredis({
    host: '127.0.0.1', //ip
    port: 6379, //端口
})

2.1 字符串

ioredis.setex('key', 10, 'value') 
//普通存储
ioredis.set('key', 'value')
//读取
ioredis.get('key')

2.2 集合

// 添加元素到集合
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);
  });

2.3 哈希

// 设置哈希字段的值
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' }
  });

 2.4 队列

// 在队列的头部添加元素
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);
});

2.5 发布订阅

// 引入 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');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值