resty的缓存设计极其简单,目前分为两部分,model数据缓存和session缓存,第3条使用权限控制时,session被存入缓存,便于实现分布式,支持 ehcache和 redis
1. 在application.properties里启用缓存,并配置缓存对象
1
2
3
|
app.cacheEnabled= true #如果不配置cacheManager对象,默认使用ehcacheManager #app.cacheManager=cn.dreampie.cache.redis.RedisManager |
2. 在resources下配置缓存文件
ehcache.xml
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
|
< ehcache name = "shiro" updateCheck = "false" monitoring = "autodetect" dynamicConfig = "true" > < diskStore path = "java.io.tmpdir/resty-ehcache" /> < defaultCache maxElementsInMemory = "10000" eternal = "false" timeToIdleSeconds = "360" timeToLiveSeconds = "360" overflowToDisk = "false" diskPersistent = "false" diskExpiryThreadIntervalSeconds = "120" /> < cache name = "_credential" maxElementsInMemory = "10000" eternal = "false" timeToIdleSeconds = "1200" overflowToDisk = "false" diskPersistent = "false" diskExpiryThreadIntervalSeconds = "120" /> <!--session 缓存永久的 程序自动清理过期的数据--> < cache name = "_session" maxElementsInMemory = "10000" eternal = "true" overflowToDisk = "true" diskPersistent = "true" diskExpiryThreadIntervalSeconds = "120" /> </ ehcache > |
redis.properties
1
2
3
4
5
6
|
redis.host=127.0.0.1:6379 #如果使用ShardInfo 逗号分割 #redis.shard.host=127.0.0.1:6379,127.0.0.1:6379 redis.timeout=0 redis.pool.maxWaitMillis=-1 redis.pool.minEvictableIdleTimeMillis=1800000 |
3. 在Model的table配置中,Record的构造参数开启缓存
1
2
3
4
|
//model @Table (name = "sec_user" ,generatedKey= "id" , primaryKey = "sid" , cached = true ) //record Record recordDAO = new Record( "sec_user" , true ); |
以上就是resty的缓存技术设计及使用的详细内容,更多关于resty缓存设计使用的资料请关注服务器之家其它相关文章!
原文链接:https://dreampie.gitbooks.io/resty-chs/content/cache.html