node中如何使用redis的实现
作者:我搁这敲代码呢
一、Redis是什么?
Redis
是一个开源的内存数据结构存储器,一般可以用于数据库、缓存、消息代理等,我们常在项目中用redis
解决高并发、高可用、高可扩展、大数据存储等问题;它本质上是一个NoSql
(非关系型数据库),我们常用的MySQL
则是关系型数据库。它并不能替代关系型数据库,更多的时候是对关系型数据库的一种补充;
二、Redis的基本数据类型
- 字符串
- 哈希
- 列表
- 集合
- 有序集合
- HyperLogLog
- 位图
redis
中共有七种数据类型,我这边会简单介绍下其中五种常见的数据类型;
2-1、字符串(String)
字符串的类型是Redis
中最基础的键值对类型,可以保存普通文字,或者是序列化的二进制数据;字符串类型最大可以存储512M
的数据;
字符串操作命令
set
设置一个字符串值get
获取字符串键对应的值getrange
截取字符串的内容strlen
获取字符串长度setex
设置过期时间mset
设置多个key-valuemget
获取多个valueappend
在字符串结尾加入内容incr
数字自增加1incrby
数字加上指定的整数值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 Manager
(goanother.com/cn/)
四、nodejs上安装 ioredis
接下来在nodejs
后端项目中使用redis
的话,可以安装ioredis
这个库操作redis
,如果是使用typescript
的话,可以再安装 @types/ioredis
。
npm i ioredis npm i --save-dev @types/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、项目中使用
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) }
六、结语
本文当中简单介绍了redis
的基础操作命令,在nodejs
中如何使用redis
,实际生产当中的redis
操作更为复杂和多样,还是需要我们自己多进行摸索和实践;本文当中的操作只是常用的基础操作,如果想知道更多的redis
操作,可以去查看redis
的官方文档。
到此这篇关于node中如何使用redis的实现的文章就介绍到这了,更多相关node使用redis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!