当前位置: 首页 > 工具软件 > ioredis > 使用案例 >

nodejs中使用ioredis库操作redis

韩弘壮
2023-12-01

1.初始化

const Redis = require('ioredis');

// 创建 Redis 客户端实例,设置默认过期时间
const redis = new Redis({
  host: '127.0.0.1',
  port: 6379,
  password: 'password',
  // 设置默认过期时间为 60 秒
  defaultExpiry: 60,
});

可以在初始化 Redis 客户端实例时指定默认的过期时间,它将用于设置 Redis 中的键值对的过期时间。

这样,在后续执行 Redis 命令时,如果没有指定具体的过期时间,将使用该默认过期时间设置键值对的过期时间。

2.列表操作 list

2.1 添加元素到列表

// 添加元素到列表中
redis.lpush('list-name', 'item1', 'item2', 'item3');

list-name 就是列表的 key,列表名,后面是添加的元素。
lpush: 表示从左侧添加,顾名思义,还有rpush, 从右侧添加。

2.2 获取列表元素

// 获取列表中的所有元素
redis.lrange('list-name', 0, -1).then((result) => {
  console.log(result);
});

可以自己指定下标,获取区间元素。0,-1 是获取所有元素。

2.3 获取列表长度

// 获取列表长度
redis.llen('list-name').then((result) => {
  console.log(result);
});

2.4 删除元素

// 删除列表中的元素
redis.lrem('list-name', 1, 'item1').then((result) => {
  console.log(result);
});

参数介绍:

  • 列表的 key 值。
  • 要删除的元素个数。它有三种取值:
    • 如果传入 0,表示删除所有等于第三个参数 value 的元素;
    • 如果传入一个正数 n,表示删除最多 n 个等于 value 的元素;
    • 如果传入一个负数 -n,表示删除最多 n 个等于 value 的元素,并且从尾部开始向前遍历列表删除元素,例如 -1 表示从尾部开始删除第一个值等于 value 的元素。
  • 要删除的元素的值。

2.5 根据下标获取元素

[‘ni’, ‘hello’, ‘hhha’]

// 根据下标获取元素
redis.lindex('list-name', 1, (err, result) => {
  console.log(result); // 输出 'hello'
});

2.6 限定长度,截取

redis.ltrim("list-name", 0, 5);

保留最近的6个。

2.7 删除最早的元素pop

redis.lpop("list-name");  // 删除最早的元素

3. 键值对操作

设置 key 的值为 value:
redis.set("key", "value");

//获取 key 对应的值:
redis.get("key", (err, result) => {
  console.log(result);
});

//判断键是否存在:
redis.exists("key", (err, result) => {
  if (result === 1) {
    console.log("key exists");
  } else {
    console.log("key does not exist");
  }
});

//删除键:
redis.del("key");

//设置键的过期时间:
redis.expire("key", 30);  // 30 秒后过期

//自增计数器:
redis.incr("counter", (err, result) => {
  console.log(result);
});

//自减计数器:
redis.decr("counter", (err, result) => {
  console.log(result);
});

//添加元素到集合:
redis.sadd("myset", "value1", "value2", "value3");

//删除集合中的元素:
redis.srem("myset", "value1", "value2");

//获取集合中所有成员:
redis.smembers("myset", (err, result) => {
  console.log(result);
});
 类似资料: