node中如何如何使用redis的如何实现

一、Redis是什么? Redis 是一个开源的内存数据结构存储器,一般可以用于数据库、缓存、消息代理等,我们常在项目中用redis解决高并发、高可用、高可扩展

一、Redis是什么?

Redis 是一个开源的内存数据结构存储器,一般可以用于数据库、缓存、消息代理等,我们常在项目中用redis解决高并发、高可用、高可扩展、大数据存储等问题;它本质上是一个NoSql(非关系型数据库),我们常用的MySQL则是关系型数据库。它并不能替代关系型数据库,更多的时候是对关系型数据库的一种补充;

二、Redis的基本数据类型

  • 字符串
  • 哈希
  • 列表
  • 集合
  • 有序集合
  • HyperLogLog
  • 位图

redis中共有七种数据类型,我这边会简单介绍下其中五种常见的数据类型;

2-1、字符串(String)

字符串的类型是Redis中最基础的键值对类型,可以保存普通文字,或者是序列化的二进制数据;字符串类型最大可以存储512M的数据;

字符串操作命令

  • set 设置一个字符串值
  • get 获取字符串键对应的值
  • getrange 截取字符串的内容
  • strlen 获取字符串长度
  • setex 设置过期时间
  • mset 设置多个key-value
  • mget 获取多个value
  • append 在字符串结尾加入内容
  • incr 数字自增加1
  • incrby 数字加上指定的整数值
  • incrbyfloat 数字加上指定的浮点数
  • decr 数字自减一
  • decby 数字减去指定的整数值

2-2、哈希类型

常用于保存复杂的数据结构。

  • hest 设置单个字段
  • hmset 设置多个字段
  • hget 获取单个字段值
  • hmget 获取多个字段值
  • hgetall 获取所有字段值
  • hkeys 获取所有字段名
  • hlen 获取哈希表中字段的数量
  • hexists 判断哈希表中存在某个字段
  • hvals 获取哈希表中所有字段值
  • hdel 删除哈希表的字段
  • hincrby 给某个字段加上指定的整数值
  • hincrbyfloart 给某个字段加上指定的浮点数

2-3、列表类型

常用于保存序列化的数据。

  • rpush 末尾新增值
  • lpush 开头新增值
  • llen 获取长度
  • lindex 获取表某个元素
  • linsert 在列表某个位置插入值
  • lpop 删除最左边的值 -rpop 删除最右边的值
  • lrem 删除某个位置的值

2-4、集合类型

如果你的需求是不允许数据重复,则你需要使用redis提供的结合类型。

  • sadd 添加值
  • scard 获取集合长度
  • sismember 判断是否含有某个元素
  • srem 删除某个元素
  • srop 随机删除某个元素,并返回
  • srandmember 随机返回集合中的元素
  • sunion 组合两个或多个结合并返回所有元素的列表
  • smove 将元素从一个集合移动到另一个结合

2-5、有序集合

结合将带有排序功能,redis将按照分数值进行排序。

  • zcard 获取结合长度
  • zcount 查询某个分数值区间内的值数量
  • zscore 查询某个值的分数值
  • zrange 获取集合内容的升序
  • zrevrange 获取集合内容降序
  • zrangebyscore 获取分数值区间内的集合内容升序
  • zrevrangebyscore 获取分数值区间内的集合内容降序
  • zrank 获取升序排序(从0开始)
  • zrevrank 获取降序排序(从0开始)
  • zrem 删除集合中的值(单个、多个)
  • zremrangebyrank 删除排名区间内的值
  • zremrangebyscore 删除分数值区间内的值

三、安装 redis 及辅助工具 Another Redis Desktop Manager

官网地址:redis.io/ 下载地址:download.redis.io/releases/redis-3.0.0.tar.gz

window环境下安装redis可以点击此链接

可视化工具: Another Redis Desktop Managergoanother.com/cn/

四、nodejs上安装 ioredis

接下来在nodejs后端项目中使用redis的话,可以安装ioredis这个库操作redis,如果是使用typescript的话,可以再安装 @types/ioredis

npm i ioredis 
npm i --save-dev @types/ioredis

ioredis 官方文档

五、nodejs上使用 ioredis

5-1、基础的redis链接配置

import redis from 'ioredis'
const { REDIS_PORT, REDIS_HOST, REDIS_PASSWORD, REDIS_DB } = process.env as any
export default new redis({
  port: REDIS_PORT, // redis的端口
  host: REDIS_HOST, // redis的允许地址
  password: REDIS_PASSWORD, // redis的密码
  db: REDIS_DB // redis由16个db库,可以手动选择第几个,由0开始
})

5-2、项目中使用

ioredisredis命令全部更改为了函数调用的形式,我们调用redis就像平时开发调用函数一样即可,下面是最简单的使用案例:

import redis from '@/redis'
/**
 * 重置存储 session的过期时间
 * @param key
 * @param time 过期时间设置(min)
 */
export const resetTime = (key: string, time = 60) => {
  redis.expire(key, time * 60)
  recordNum(redisType.expire)
}

六、结语

本文当中简单介绍了redis的基础操作命令,在nodejs中如何使用redis,实际生产当中的redis操作更为复杂和多样,还是需要我们自己多进行摸索和实践;本文当中的操作只是常用的基础操作,如果想知道更多的redis操作,可以去查看redis的官方文档。

redis官方文档

到此这篇关于node中如何使用redis的实现的文章就介绍到这了,更多相关node使用redis内容请搜索好代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好代码网!

标签: node redis