node中如何使用redis的實現(xiàn)
一、Redis是什么?
Redis 是一個開源的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲器,一般可以用于數(shù)據(jù)庫、緩存、消息代理等,我們常在項目中用redis解決高并發(fā)、高可用、高可擴(kuò)展、大數(shù)據(jù)存儲等問題;它本質(zhì)上是一個NoSql(非關(guān)系型數(shù)據(jù)庫),我們常用的MySQL則是關(guān)系型數(shù)據(jù)庫。它并不能替代關(guān)系型數(shù)據(jù)庫,更多的時候是對關(guān)系型數(shù)據(jù)庫的一種補(bǔ)充;
二、Redis的基本數(shù)據(jù)類型
- 字符串
- 哈希
- 列表
- 集合
- 有序集合
- HyperLogLog
- 位圖
redis中共有七種數(shù)據(jù)類型,我這邊會簡單介紹下其中五種常見的數(shù)據(jù)類型;
2-1、字符串(String)
字符串的類型是Redis中最基礎(chǔ)的鍵值對類型,可以保存普通文字,或者是序列化的二進(jìn)制數(shù)據(jù);字符串類型最大可以存儲512M的數(shù)據(jù);
字符串操作命令
set設(shè)置一個字符串值get獲取字符串鍵對應(yīng)的值getrange截取字符串的內(nèi)容strlen獲取字符串長度setex設(shè)置過期時間mset設(shè)置多個key-valuemget獲取多個valueappend在字符串結(jié)尾加入內(nèi)容incr數(shù)字自增加1incrby數(shù)字加上指定的整數(shù)值incrbyfloat數(shù)字加上指定的浮點(diǎn)數(shù)decr數(shù)字自減一decby數(shù)字減去指定的整數(shù)值
2-2、哈希類型
常用于保存復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
hest設(shè)置單個字段hmset設(shè)置多個字段hget獲取單個字段值hmget獲取多個字段值hgetall獲取所有字段值hkeys獲取所有字段名hlen獲取哈希表中字段的數(shù)量hexists判斷哈希表中存在某個字段hvals獲取哈希表中所有字段值hdel刪除哈希表的字段hincrby給某個字段加上指定的整數(shù)值hincrbyfloart給某個字段加上指定的浮點(diǎn)數(shù)
2-3、列表類型
常用于保存序列化的數(shù)據(jù)。
rpush末尾新增值lpush開頭新增值llen獲取長度lindex獲取表某個元素linsert在列表某個位置插入值lpop刪除最左邊的值 -rpop刪除最右邊的值lrem刪除某個位置的值
2-4、集合類型
如果你的需求是不允許數(shù)據(jù)重復(fù),則你需要使用redis提供的結(jié)合類型。
sadd添加值scard獲取集合長度sismember判斷是否含有某個元素srem刪除某個元素srop隨機(jī)刪除某個元素,并返回srandmember隨機(jī)返回集合中的元素sunion組合兩個或多個結(jié)合并返回所有元素的列表smove將元素從一個集合移動到另一個結(jié)合
2-5、有序集合
結(jié)合將帶有排序功能,redis將按照分?jǐn)?shù)值進(jìn)行排序。
zcard獲取結(jié)合長度zcount查詢某個分?jǐn)?shù)值區(qū)間內(nèi)的值數(shù)量zscore查詢某個值的分?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刪除集合中的值(單個、多個)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 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、基礎(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個db庫,可以手動選擇第幾個,由0開始
})5-2、項目中使用
ioredis 將redis命令全部更改為了函數(shù)調(diào)用的形式,我們調(diào)用redis就像平時開發(fā)調(diào)用函數(shù)一樣即可,下面是最簡單的使用案例:
import redis from '@/redis'
/**
* 重置存儲 session的過期時間
* @param key
* @param time 過期時間設(shè)置(min)
*/
export const resetTime = (key: string, time = 60) => {
redis.expire(key, time * 60)
recordNum(redisType.expire)
}六、結(jié)語
本文當(dāng)中簡單介紹了redis的基礎(chǔ)操作命令,在nodejs中如何使用redis,實際生產(chǎn)當(dāng)中的redis操作更為復(fù)雜和多樣,還是需要我們自己多進(jìn)行摸索和實踐;本文當(dāng)中的操作只是常用的基礎(chǔ)操作,如果想知道更多的redis操作,可以去查看redis的官方文檔。
到此這篇關(guān)于node中如何使用redis的實現(xiàn)的文章就介紹到這了,更多相關(guān)node使用redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs發(fā)布靜態(tài)https服務(wù)器的方法
這篇文章主要介紹了nodejs發(fā)布靜態(tài)https服務(wù)器的方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09
node-sass安裝失敗解決方法總結(jié)(終有一款適合你)
node-sass是我們開發(fā)中很常見的依賴包,也是安裝時間冗長和最常見到報錯的依賴,下面這篇文章主要給大家介紹了關(guān)于node-sass安裝失敗解決方法的相關(guān)資料,需要的朋友可以參考下2022-11-11
NodeJS落地WebSocket實踐前端架構(gòu)師破局技術(shù)
這篇文章主要為大家介紹了NodeJS落地WebSocket實踐前端架構(gòu)師破局技術(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Nodejs 發(fā)送Post請求功能(發(fā)短信驗證碼例子)
這篇文章主要介紹了Nodejs 發(fā)送Post請求功能(發(fā)短信驗證碼例子),需要的朋友可以參考下2017-02-02
node管理統(tǒng)計文件大小并顯示目錄磁盤空間狀態(tài)從零實現(xiàn)
這篇文章主要為大家介紹了node管理統(tǒng)計文件大小并顯示目錄磁盤空間狀態(tài)的從零實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
前端node Session和JWT鑒權(quán)登錄示例詳解
關(guān)于前端鑒權(quán)登錄是比較常見的需求了,本文將從服務(wù)端渲染和前后端分離的不同角度下演示鑒權(quán),為大家介紹前端node Session和JWT鑒權(quán)登錄示例詳解2022-07-07
sublime text配置node.js調(diào)試(圖文教程)
下面小編就為大家分享一篇sublime text配置node.js調(diào)試(圖文教程),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11
node.js中的fs.realpathSync方法使用說明
這篇文章主要介紹了node.js中的fs.realpathSync方法使用說明,本文介紹了fs.realpathSync的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12

