欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node中如何使用redis的實(shí)現(xiàn)

 更新時(shí)間:2023年06月19日 11:50:47   作者:我擱這敲代碼呢  
本文主要介紹了node中如何使用redis的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、Redis是什么?

Redis 是一個(gè)開源的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)器,一般可以用于數(shù)據(jù)庫、緩存、消息代理等,我們常在項(xiàng)目中用redis解決高并發(fā)、高可用、高可擴(kuò)展、大數(shù)據(jù)存儲(chǔ)等問題;它本質(zhì)上是一個(gè)NoSql(非關(guān)系型數(shù)據(jù)庫),我們常用的MySQL則是關(guān)系型數(shù)據(jù)庫。它并不能替代關(guān)系型數(shù)據(jù)庫,更多的時(shí)候是對(duì)關(guān)系型數(shù)據(jù)庫的一種補(bǔ)充;

二、Redis的基本數(shù)據(jù)類型

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

redis中共有七種數(shù)據(jù)類型,我這邊會(huì)簡(jiǎn)單介紹下其中五種常見的數(shù)據(jù)類型;

2-1、字符串(String)

字符串的類型是Redis中最基礎(chǔ)的鍵值對(duì)類型,可以保存普通文字,或者是序列化的二進(jìn)制數(shù)據(jù);字符串類型最大可以存儲(chǔ)512M的數(shù)據(jù);

字符串操作命令

  • set 設(shè)置一個(gè)字符串值
  • get 獲取字符串鍵對(duì)應(yīng)的值
  • getrange 截取字符串的內(nèi)容
  • strlen 獲取字符串長(zhǎng)度
  • setex 設(shè)置過期時(shí)間
  • mset 設(shè)置多個(gè)key-value
  • mget 獲取多個(gè)value
  • append 在字符串結(jié)尾加入內(nèi)容
  • incr 數(shù)字自增加1
  • incrby 數(shù)字加上指定的整數(shù)值
  • incrbyfloat 數(shù)字加上指定的浮點(diǎn)數(shù)
  • decr 數(shù)字自減一
  • decby 數(shù)字減去指定的整數(shù)值

2-2、哈希類型

常用于保存復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

  • hest 設(shè)置單個(gè)字段
  • hmset 設(shè)置多個(gè)字段
  • hget 獲取單個(gè)字段值
  • hmget 獲取多個(gè)字段值
  • hgetall 獲取所有字段值
  • hkeys 獲取所有字段名
  • hlen 獲取哈希表中字段的數(shù)量
  • hexists 判斷哈希表中存在某個(gè)字段
  • hvals 獲取哈希表中所有字段值
  • hdel 刪除哈希表的字段
  • hincrby 給某個(gè)字段加上指定的整數(shù)值
  • hincrbyfloart 給某個(gè)字段加上指定的浮點(diǎn)數(shù)

2-3、列表類型

常用于保存序列化的數(shù)據(jù)。

  • rpush 末尾新增值
  • lpush 開頭新增值
  • llen 獲取長(zhǎng)度
  • lindex 獲取表某個(gè)元素
  • linsert 在列表某個(gè)位置插入值
  • lpop 刪除最左邊的值 -rpop 刪除最右邊的值
  • lrem 刪除某個(gè)位置的值

2-4、集合類型

如果你的需求是不允許數(shù)據(jù)重復(fù),則你需要使用redis提供的結(jié)合類型。

  • sadd 添加值
  • scard 獲取集合長(zhǎng)度
  • sismember 判斷是否含有某個(gè)元素
  • srem 刪除某個(gè)元素
  • srop 隨機(jī)刪除某個(gè)元素,并返回
  • srandmember 隨機(jī)返回集合中的元素
  • sunion 組合兩個(gè)或多個(gè)結(jié)合并返回所有元素的列表
  • smove 將元素從一個(gè)集合移動(dòng)到另一個(gè)結(jié)合

2-5、有序集合

結(jié)合將帶有排序功能,redis將按照分?jǐn)?shù)值進(jìn)行排序。

  • zcard 獲取結(jié)合長(zhǎng)度
  • zcount 查詢某個(gè)分?jǐn)?shù)值區(qū)間內(nèi)的值數(shù)量
  • zscore 查詢某個(gè)值的分?jǐn)?shù)值
  • zrange 獲取集合內(nèi)容的升序
  • zrevrange 獲取集合內(nèi)容降序
  • zrangebyscore 獲取分?jǐn)?shù)值區(qū)間內(nèi)的集合內(nèi)容升序
  • zrevrangebyscore 獲取分?jǐn)?shù)值區(qū)間內(nèi)的集合內(nèi)容降序
  • zrank 獲取升序排序(從0開始)
  • zrevrank 獲取降序排序(從0開始)
  • zrem 刪除集合中的值(單個(gè)、多個(gè))
  • zremrangebyrank 刪除排名區(qū)間內(nèi)的值
  • zremrangebyscore 刪除分?jǐn)?shù)值區(qū)間內(nèi)的值

三、安裝 redis 及輔助工具 Another Redis Desktop Manager

官網(wǎng)地址:redis.io/ 下載地址:download.redis.io/releases/redis-3.0.0.tar.gz

window環(huán)境下安裝redis可以點(diǎn)擊此鏈接

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

四、nodejs上安裝 ioredis

接下來在nodejs后端項(xiàng)目中使用redis的話,可以安裝ioredis這個(gè)庫操作redis,如果是使用typescript的話,可以再安裝 @types/ioredis

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

ioredis 官方文檔

五、nodejs上使用 ioredis

5-1、基礎(chǔ)的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個(gè)db庫,可以手動(dòng)選擇第幾個(gè),由0開始
})

5-2、項(xiàng)目中使用

ioredisredis命令全部更改為了函數(shù)調(diào)用的形式,我們調(diào)用redis就像平時(shí)開發(fā)調(diào)用函數(shù)一樣即可,下面是最簡(jiǎn)單的使用案例:

import redis from '@/redis'
/**
 * 重置存儲(chǔ) session的過期時(shí)間
 * @param key
 * @param time 過期時(shí)間設(shè)置(min)
 */
export const resetTime = (key: string, time = 60) => {
  redis.expire(key, time * 60)
  recordNum(redisType.expire)
}

六、結(jié)語

本文當(dāng)中簡(jiǎn)單介紹了redis的基礎(chǔ)操作命令,在nodejs中如何使用redis,實(shí)際生產(chǎn)當(dāng)中的redis操作更為復(fù)雜和多樣,還是需要我們自己多進(jìn)行摸索和實(shí)踐;本文當(dāng)中的操作只是常用的基礎(chǔ)操作,如果想知道更多的redis操作,可以去查看redis的官方文檔。

redis官方文檔

到此這篇關(guān)于node中如何使用redis的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)node使用redis內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論