91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

@CacheEvict無法解決分頁緩存清除怎么辦

發布時間:2021-12-31 11:27:57 來源:億速云 閱讀:246 作者:iii 欄目:開發技術

本篇內容介紹了“@CacheEvict無法解決分頁緩存清除怎么辦”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    @CacheEvict無法解決分頁緩存清除

    當下比較熱門的spring緩存就是encache,但是最近在寫畢業設計的時候,發現了在緩存分頁的時候,往往只緩存了一頁數據,導致點擊下一頁的時候,沒有響應。因此花了點時間去了解了一想@CacheEvict。

    在我們緩存一個數據的時候,都是緩存在一個key里面,如下

    //這是插入的時候需要清除緩存key里面的內容
    @CacheEvict(value = "aboutShop", key = "'selectAllShop'")
    //這是一開始查詢的時候,保存到key的內容
    @Cacheable(value = "aboutShop", key = "'selectAllShop'")
    //這是后來添加了分頁的緩存key設置,這樣緩存分頁了,但是在插入的時候,無法更新到查詢信息
    @Cacheable(value = "aboutShop", key = "'selectAllShop_'+#params.pageNo")

    這是我的一個查詢分頁并緩存分頁一開始的寫法,然而,每次緩存都是緩存了第一頁

    因此,就去看了一下如何解決

    了解了兩種寫法::

    第一種:用spring AOP的方式,循環遍歷刪除所有帶有前綴selectAllShop的內容,

    因為encache沒有自帶模糊通配符,所有要自己重寫一個方法進行匹配刪除。這里有個博主講的挺好的,我的第一個方法就是這樣汲取的。

    http://www.neiyidaogou.com/article/134394.htm

    接下來講被我吸收利用到畢業設計里面的第二種方法吧!我看完第一種方法,發現這種方法循環遍歷刪除,如果數據幾十萬條的情況下(雖然我的只有一百多條數據),遍歷刪除需要的時間還是不少的。因此我們可以從encache注解熟悉的value里面下手,

    我給出的代碼,是我寫好的自定義value名稱,配置大于約定,我在spring-redis.xml中配置一個RedisCacheManager管理器,并且配置緩存區間

    <!--配置RedisCacheManager-->
        <bean class="org.springframework.data.redis.cache.RedisCacheManager" id="redisCacheManager">
            <constructor-arg name="redisOperations" ref="redisTemplate"/>
            <!--設置過期時間-->
            <property name="defaultExpiration" value="${redis.expiration}"/>
            <!--配置緩存區間-->
            <property name="cacheNames">
                <list>
                    <value>aboutUser</value>
                    <value>aboutShop</value>//這是我獨立出來的一個緩存區間,用來專門存放Shop查詢分頁的信息
                </list>
            </property>
        </bean>

    在插入信息的時候使用:

    //allentries是指清除value里面的所有內容
    @CacheEvict(value = "aboutShop", allEntries = true)

    這樣就可以實現插入的時候,同步緩存分頁了

    spring分頁緩存

    @Cacheable(key = "'myPage_'+#pagePlus.current+'_'+#pagePlus.limit")
    public void cachePage(Page pagePlus) {
    }

    “@CacheEvict無法解決分頁緩存清除怎么辦”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    西和县| 吉木萨尔县| 海伦市| 溧水县| 富宁县| 大姚县| 平武县| 潜江市| 资溪县| 唐山市| 黑水县| 彭阳县| 蚌埠市| 安康市| 宝应县| 什邡市| 镇安县| 安西县| 枣强县| 建宁县| 安化县| 普格县| 澄迈县| 盐山县| 恭城| 福贡县| 平武县| 郁南县| 淅川县| 邓州市| 连云港市| 竹溪县| 新绛县| 娄烦县| 甘孜县| 孝义市| 绥德县| 泸州市| 康保县| 玉树县| 将乐县|