node中如何使用redis的實現
一、Redis是什么?
Redis 是一個開源的內存數據結構存儲器,一般可以用于數據庫、緩存、消息代理等,我們常在項目中用redis解決高并發(fā)、高可用、高可擴展、大數據存儲等問題;它本質上是一個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查詢某個分數值區(qū)間內的值數量zscore查詢某個值的分數值zrange獲取集合內容的升序zrevrange獲取集合內容降序zrangebyscore獲取分數值區(qū)間內的集合內容升序zrevrangebyscore獲取分數值區(qū)間內的集合內容降序zrank獲取升序排序(從0開始)zrevrank獲取降序排序(從0開始)zrem刪除集合中的值(單個、多個)zremrangebyrank刪除排名區(qū)間內的值zremrangebyscore刪除分數值區(qū)間內的值
三、安裝 redis 及輔助工具 Another Redis Desktop Manager
官網地址:redis.io/ 下載地址:download.redis.io/releases/redis-3.0.0.tar.gz
window環(huán)境下安裝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就像平時開發(fā)調用函數一樣即可,下面是最簡單的使用案例:
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內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
nodejs發(fā)布靜態(tài)https服務器的方法
這篇文章主要介紹了nodejs發(fā)布靜態(tài)https服務器的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09
Nodejs 發(fā)送Post請求功能(發(fā)短信驗證碼例子)
這篇文章主要介紹了Nodejs 發(fā)送Post請求功能(發(fā)短信驗證碼例子),需要的朋友可以參考下2017-02-02
node管理統計文件大小并顯示目錄磁盤空間狀態(tài)從零實現
這篇文章主要為大家介紹了node管理統計文件大小并顯示目錄磁盤空間狀態(tài)的從零實現詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
node.js中的fs.realpathSync方法使用說明
這篇文章主要介紹了node.js中的fs.realpathSync方法使用說明,本文介紹了fs.realpathSync的方法說明、語法、接收參數、使用實例和實現源碼,需要的朋友可以參考下2014-12-12

