Java EHCache 開源分佈式緩存框架 完美實現session功能

Ehcache的緩存的特點: 失效時間是按第一次緩存的時間來計算,也就是說同一緩存第一次放入30秒後失效,放入之後無論怎麼操作,30秒之後都會失效。 這種失效的機制似乎不是我們想要的,下邊就介紹如何完美實現session機制。   實例代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<?xml version="1.0" encoding="UTF-8"?>

 

<ehcache>

     

    <!-- 設置緩存文件創建路徑 -->

    <diskStore path="java.io.tmpdir"/>

     

    <!--

        maxEntriesLocalHeap : 堆內存中最大緩存對象數,0沒有限制;

        eternal: true,對象是永久有效,timeout將被忽略;

        timeToIdleSeconds: 緩存過期前的閒置時間;

        timeToLiveSeconds: 緩存過期前的生存時間,創建時間到失效時間的間隔爲存活時間;

        注:timeToIdleSeconds和timeToLiveSeconds: 當eternal爲false時,這個屬性纔有效,0爲不限制;

        maxEntriesLocalDisk: 磁盤中的最大對象數,默認爲0不限制;

        diskExpiryThreadIntervalSeconds: 使用過期算法清除磁盤中失效對象的間隔;

        memoryStoreEvictionPolicy: 當超過最大內存限制時,根據指定的策略去清理內存。默認策略是LRU。

        清理內存的三種算法: LRU(最近最少使用) 、LFU(較少使用)、FIFO(先進先出)

    -->

    <cache name="sessionCache"

        maxEntriesLocalHeap="10000"

        eternal="false"

        timeToIdleSeconds="60"

        timeToLiveSeconds="60"

        maxEntriesLocalDisk="10000000"

        diskExpiryThreadIntervalSeconds="30"

        memoryStoreEvictionPolicy="LRU">

        <!--

                 持久化策略: localTempSwap、localRestartable

        -->

        <persistence strategy="localTempSwap"/>  

    </cache>

</ehcache>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<?xml version="1.0" encoding="UTF-8"?>

 

<ehcache>

     

    <!-- 設置緩存文件創建路徑 -->

    <diskStore path="java.io.tmpdir"/>

     

    <!--

        maxEntriesLocalHeap : 堆內存中最大緩存對象數,0沒有限制;

        eternal: true,對象是永久有效,timeout將被忽略;

        timeToIdleSeconds: 緩存過期前的閒置時間;

        timeToLiveSeconds: 緩存過期前的生存時間,創建時間到失效時間的間隔爲存活時間;

        注:timeToIdleSeconds和timeToLiveSeconds: 當eternal爲false時,這個屬性纔有效,0爲不限制;

        maxEntriesLocalDisk: 磁盤中的最大對象數,默認爲0不限制;

        diskExpiryThreadIntervalSeconds: 使用過期算法清除磁盤中失效對象的間隔;

        memoryStoreEvictionPolicy: 當超過最大內存限制時,根據指定的策略去清理內存。默認策略是LRU。

        清理內存的三種算法: LRU(最近最少使用) 、LFU(較少使用)、FIFO(先進先出)

    -->

    <cache name="sessionCache"

        maxEntriesLocalHeap="10000"

        eternal="false"

        timeToIdleSeconds="60"

        timeToLiveSeconds="60"

        maxEntriesLocalDisk="10000000"

        diskExpiryThreadIntervalSeconds="30"

        memoryStoreEvictionPolicy="LRU">

        <!--

                 持久化策略: localTempSwap、localRestartable

        -->

        <persistence strategy="localTempSwap"/>  

    </cache>

</ehcache>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章