当前位置: 首页 > news >正文

nodejs中如何使用Redis

Redis介绍:

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

Redis的基本数据类型:

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

 字符串:

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

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

哈希: 

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

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

列表: 

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

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

集合: 

常用于不允许数据重复,则使用redis提供的集合类型。

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

有序集合 :

常用于带有排序功能,redis将按照分数值进行排序。

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

nodejs上安装 ioredis:

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

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

ioredis中文文档|ioredis js中文教程|解析 | npm中文文档

nodejs上使用 ioredis:

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

ioredis 将redis命令全部更改为函数调用的形式,调用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)
}

http://www.lryc.cn/news/153227.html

相关文章:

  • golang append坑
  • PaddleNLP使用Vicuna
  • jackson常用操作
  • ios ipa包上传需要什么工具
  • 科目1基础知识快速入门精简
  • 安卓逆向 - 某东app加密参数还原
  • Visual Studio(2022)生成链接过程的.map映射文件以及.map映射文件的内容说明
  • A. Gift Carpet
  • 技术科普:汽车开放系统架构AUTOSAR
  • 说说HTTP 和 HTTPS 有什么区别?
  • Pygame中Trivia游戏解析6-5
  • Java8新特性2——方法引用
  • Mac“其他文件”存放着什么?“其他文件”的清理方法
  • 46、TCP的“三次握手”
  • libudev 和 libusb 常见API分析
  • [dasctf]misc04
  • Scala的函数式编程与高阶函数,匿名函数,偏函数,函数的闭包、柯里化,抽象控制,懒加载等
  • Axure RP 8.1.0.3400(原型设计工具)
  • 企业微信、飞书、钉钉机器人消息发送工具类
  • 手撕 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp (1)
  • Mac安装Dart时,Homebrew报错 Error: Failure while executing
  • SSM整合~
  • Self-supervised 3D Human Pose Estimation from a Single Image
  • ubuntu下cups部分场景
  • 通过geoserver imageMosic发布多张tif数据
  • 输出图元(四)8-2 OpenGL画点函数、OpenGL画线函数
  • java八股文
  • 算法通关村——解析堆的应用
  • 爬虫源码---爬取小猫猫交易网站
  • Python的由来和基础语法(一)