本来以为geode也有那种像memcache一样set的时候直接设置此条数据的有效期的,结果发现并没有
geode分为客户端缓存 一般由我们java代码实现,跟我们普通连接其它缓存一样,不过不能创建region那些操作,
服务端server,这个暂时是由gfsh直接操作启动,到时由客户端连接locators,由locator分配连接哪些server
这里的数据过期就得在server里设置,首先配置一个xml文件server1_cache.xml,配置好表region
<?xml version="1.0" encoding="UTF-8"?>
<cache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schema.pivotal.io/gemfire/cache"
xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache
http://schema.pivotal.io/gemfire/cache/cache-8.1.xsd"
version="8.1" lock-lease="120" lock-timeout="60" search-timeout="300"
is-server="true" copy-on-read="false">
<region name="userinfo" refid="PARTITION">
<region-attributes statistics-enabled="true" index-update-type="asynchronous">
<entry-time-to-live>
<expiration-attributes action="destroy" timeout="20"/>
</entry-time-to-live>
<entry-idle-time>
<expiration-attributes action="destroy" timeout="60"/>
</entry-idle-time>
</region-attributes>
</region>
</cache>
idle-time 表示创建后多久失效,time-to-live表示没有访问后多久失效
然后启动locator,再启动server,如果是集群,则每一个server启动时都要带上这个xml配置文件
start locator --name=locator202 --locators=192.168.137.202[10334],192.168.137.203[10334]
start server --name=server202 --cache-xml-file=/root/geodeconf/server1/server1_cache.xml --locators=192.168.137.202[10334],192.168.137.203[10334]
start locator --name=locator203 --locators=192.168.137.202[10334],192.168.137.203[10334]
start server --name=server203 --cache-xml-file=/root/geodeconf/server1/server1_cache.xml --locators=192.168.137.202[10334],192.168.137.203[10334]
这样userinfo表里的数据就可以自动过期了