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

在項目中使用redis做緩存的一些思路

 更新時間:2021年09月13日 09:57:15   作者:麥田小豬  
這篇文章主要介紹了在項目中使用redis做緩存的一些思路,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

在項目中redis做緩存的一些思路

首先,緩存的對象有三種

1、數(shù)據(jù)庫中單條的的數(shù)據(jù)(以表名跟id作為key永久保存到redis),在有更新的地方都要更新緩存(不適用于需要經(jīng)常更新的數(shù)據(jù));

2、對于一些不分頁,不需要實時(需要多表查詢)的列表,我們可以將列表結(jié)果緩存到redis中,設(shè)定一定緩存時間作為該數(shù)據(jù)的存活時間。用獲取該列表的方法名作為key,列表結(jié)果為value;這種情況只試用于不經(jīng)常更新且不需要實時的情況下。

3、不需要實時的,需要分頁的列表:可以把分頁的結(jié)果列表放到一個map(key為分頁標(biāo)識,value為分頁結(jié)果)中,然后將該map存到redis的list中(用該方法名為key)。然后給該list設(shè)置一個緩存存活時間(用expire)。這樣通過方法名lrange出來就能獲取存有分頁列表的數(shù)據(jù),遍歷該list,通過遍歷list中map的key判斷該分頁數(shù)據(jù)是否在緩存內(nèi),是則返回,不存在則rpush進(jìn)去。這種做法能解決比如1-5頁的數(shù)據(jù)已經(jīng)重新加載,而6-10頁的數(shù)據(jù)依然是緩存的數(shù)據(jù)而導(dǎo)致臟數(shù)據(jù)的情況。

本人走過的一些彎路

1、對于數(shù)據(jù)緩存不是所有東西都緩存到redis就是好的,而是要針對一些改動不大或者訪問率大的數(shù)據(jù)進(jìn)行緩存來減少關(guān)系型數(shù)據(jù)庫的壓力。

2、不要試圖在攔截器或者過濾器中判斷是否有緩存的存在,因為每個請求(不管該請求對應(yīng)的方法是否做了緩存)它都會去redis中請求數(shù)據(jù)并判斷,這樣會浪費一定的內(nèi)存資源跟響應(yīng)時間。所以應(yīng)該針對需要緩存的方法進(jìn)行判斷。

3、一個方法中使用多個get或者set的方法,我們需要盡可能的減少去jedispool中獲取jedis對象,所以在一個方法中應(yīng)該只獲取一次jedis對象,在方法結(jié)束的時候把該對象return還給連接池,這樣才能做到盡可能的高效。

4、在設(shè)置連接池中參數(shù)的時候要考慮到自身系統(tǒng)需求,不然會經(jīng)常出現(xiàn)連接池中無可用對象獲取,spring時不時發(fā)起連接請求到redis等不必要的錯誤和資源浪費。

為什么沒用Redis做緩存

都知道用Redis作緩存非常的快,但事實上有些時候我們并沒有使用Redis來做緩存,而是采用本地緩存的方式。就比如我所接觸的一個項目,就沒有采用Redis作緩存,而是使用谷歌工具包中的Table來作的緩存。

這個Table其實就是一個數(shù)據(jù)結(jié)構(gòu),你可以把它當(dāng)做Map來看待。現(xiàn)在我們來畫兩幅圖,分別是使用Table做緩存和使用Redid做緩存的兩種情況

使用Table作本地緩存

本地緩存

使用Redis作緩存

在這里插入圖片描述

公司采用本地緩存的方式,那么為什么沒有采用Redis呢

讓我們來思考一下下面幾個問題

1、訪問本地服務(wù)緩存快還是遠(yuǎn)程服務(wù)Redis快?

毫無疑問是訪問本地服務(wù)的緩存要更快一些,Redis畢竟是在遠(yuǎn)程服務(wù)上。假設(shè)我們訪問本地服務(wù)緩存的延遲為50ms,那么訪問遠(yuǎn)程Redis的驗證可能會達(dá)到58ms。這是使用本地緩存服務(wù)的優(yōu)勢所在

2、Reids事務(wù)

在Redis中,雖然Redis的操作都能夠保證原子性,但是Redis中的事務(wù)不能夠保證原子性。比如說A用戶想B用戶轉(zhuǎn)賬,怎么保證它的事務(wù)呢

3、Redis會多一次IO

盡管Redis數(shù)據(jù)存放在內(nèi)存上,但Redis持久化操作還是會將數(shù)據(jù)寫在磁盤上,IO操作會增加耗時。而本地緩存使用的只是一個數(shù)據(jù)結(jié)構(gòu)來存儲數(shù)據(jù),不存在IO

那么使用本地緩存的問題是什么呢?

比如說A用戶的數(shù)據(jù)存放在exchange1節(jié)點上,而B用戶的數(shù)據(jù)存放在exchange2節(jié)點上?,F(xiàn)在A用戶想向B用戶轉(zhuǎn)賬,那么就會比較麻煩,要做一些其他的操作,這是使用本地緩存的一個很大的弊端

什么時候使用Redis?

由于公司的項目是一個證券交易所,對延遲的要求比較高,想盡可能的做到低延遲,所以最終舍棄使用Redis。對于一些不太注重延遲的項目,使用Redis做緩存是非常不錯的

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Redis緩存雪崩解決方案

    淺談Redis緩存雪崩解決方案

    本文主要介紹了Redis緩存雪崩解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Redis內(nèi)存滿了的幾種原因和最佳解決方案

    Redis內(nèi)存滿了的幾種原因和最佳解決方案

    Redis是一款高性能的內(nèi)存數(shù)據(jù)庫,被廣泛應(yīng)用于緩存、消息隊列、計數(shù)器等場景,然而,由于Redis是基于內(nèi)存的數(shù)據(jù)庫,當(dāng)數(shù)據(jù)量過大或者配置不合理時,就有可能導(dǎo)致Redis的內(nèi)存滿,本文將介紹Redis內(nèi)存滿的幾種原因,并提供相應(yīng)的解決方案,需要的朋友可以參考下
    2023-11-11
  • Linux下Redis安裝配置教程

    Linux下Redis安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了Linux下Redis安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Centos7 Redis主從搭建配置的實現(xiàn)

    Centos7 Redis主從搭建配置的實現(xiàn)

    這篇文章主要介紹了Centos7 Redis主從搭建配置的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Redis常見分布鎖的原理和實現(xiàn)

    Redis常見分布鎖的原理和實現(xiàn)

    這篇文章主要介紹了Redis常見分布鎖的原理和實現(xiàn),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • redis實現(xiàn)session共享的方法

    redis實現(xiàn)session共享的方法

    本文主要介紹了redis實現(xiàn)session共享的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 基于redis集群設(shè)置密碼的實例

    基于redis集群設(shè)置密碼的實例

    今天小編就為大家分享一篇基于redis集群設(shè)置密碼的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 關(guān)于redis可視化工具讀取數(shù)據(jù)亂碼問題

    關(guān)于redis可視化工具讀取數(shù)據(jù)亂碼問題

    大家來聊一聊在日常操作redis時用的是什么工具,redis提供的一些命令你都了解了嗎,今天通過本文給大家介紹redis可視化工具讀取數(shù)據(jù)亂碼問題,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • 詳解Redis中的雙鏈表結(jié)構(gòu)

    詳解Redis中的雙鏈表結(jié)構(gòu)

    這篇文章主要介紹了Redis中的雙鏈表結(jié)構(gòu),包括listNode結(jié)構(gòu)的API,需要的朋友可以參考下
    2015-08-08
  • Redis集群部署的過程詳解

    Redis集群部署的過程詳解

    Redis集群是Redis官方推出的分布式解決方案,它允許將數(shù)據(jù)分布在多個Redis節(jié)點中,從而提高Redis的性能和可擴(kuò)展性,本文給大家介紹了Redis集群部署的過程步驟,需要的朋友可以參考下
    2024-06-06

最新評論