node中如何使用redis的實(shí)現(xiàn)
一、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-valuemget獲取多個(gè)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è)置單個(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 Manager(goanother.com/cn/)

四、nodejs上安裝 ioredis
接下來在nodejs后端項(xiàng)目中使用redis的話,可以安裝ioredis這個(gè)庫操作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個(gè)db庫,可以手動(dòng)選擇第幾個(gè),由0開始
})5-2、項(xiàng)目中使用
ioredis 將redis命令全部更改為了函數(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的官方文檔。
到此這篇關(guān)于node中如何使用redis的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)node使用redis內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs發(fā)布靜態(tài)https服務(wù)器的方法
這篇文章主要介紹了nodejs發(fā)布靜態(tài)https服務(wù)器的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
node-sass安裝失敗解決方法總結(jié)(終有一款適合你)
node-sass是我們開發(fā)中很常見的依賴包,也是安裝時(shí)間冗長(zhǎng)和最常見到報(bào)錯(cuò)的依賴,下面這篇文章主要給大家介紹了關(guān)于node-sass安裝失敗解決方法的相關(guān)資料,需要的朋友可以參考下2022-11-11
NodeJS落地WebSocket實(shí)踐前端架構(gòu)師破局技術(shù)
這篇文章主要為大家介紹了NodeJS落地WebSocket實(shí)踐前端架構(gòu)師破局技術(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Nodejs 發(fā)送Post請(qǐng)求功能(發(fā)短信驗(yàn)證碼例子)
這篇文章主要介紹了Nodejs 發(fā)送Post請(qǐng)求功能(發(fā)短信驗(yàn)證碼例子),需要的朋友可以參考下2017-02-02
node管理統(tǒng)計(jì)文件大小并顯示目錄磁盤空間狀態(tài)從零實(shí)現(xiàn)
這篇文章主要為大家介紹了node管理統(tǒng)計(jì)文件大小并顯示目錄磁盤空間狀態(tài)的從零實(shí)現(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)試(圖文教程),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-11-11
node.js中的fs.realpathSync方法使用說明
這篇文章主要介紹了node.js中的fs.realpathSync方法使用說明,本文介紹了fs.realpathSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12

