TreeCache的使用
作者:coolflyr_reg 日期:2007-12-07 21:02:11
今天为了解决缓存问题,随便使用了下JBoss的TreeCache,它可以做缓存的群集,详细的情况请看它的官方网站。
首先我们需要对它做配置
然后我们使用它
向TreeCache添加元素
从TreeCache获取元素
从TreeCache删除元素
判断元素是否存在于TreeCache
首先我们需要对它做配置
1 | <?xml version="1.0" encoding="UTF-8"?> <!-- ===================================================================== --> <!-- --> <!-- Sample TreeCache Service Configuration --> <!-- --> <!-- ===================================================================== --> <server> <classpath codebase="../lib" archives="jboss-cache.jar, jgroups.jar"/> <!-- ==================================================================== --> <!-- Defines TreeCache configuration --> <!-- ==================================================================== --> <mbean code="org.jboss.cache.TreeCache" name="jboss.cache:service=DAOCache"> <depends>jboss:service=Naming</depends> <depends>jboss:service=TransactionManager</depends> <!-- Configure the TransactionManager --> <attribute name="TransactionManagerLookupClass"> com.test.transaction.JotmTransactionManagerLookup</attribute> <!-- Node locking scheme: OPTIMISTIC PESSIMISTIC (default) --> <attribute name="NodeLockingScheme">PESSIMISTIC</attribute> <!-- Isolation level : SERIALIZABLE REPEATABLE_READ (default) READ_COMMITTED READ_UNCOMMITTED NONE --> <attribute name="IsolationLevel">REPEATABLE_READ</attribute> <!-- Valid modes are LOCAL REPL_ASYNC REPL_SYNC INVALIDATION_ASYNC INVALIDATION_SYNC --> <attribute name="CacheMode">REPL_ASYNC</attribute> <!-- Just used for async repl: use a replication queue --> <attribute name="UseReplQueue">false</attribute> <!-- Replication interval for replication queue (in ms) --> <attribute name="ReplQueueInterval">0</attribute> <!-- Max number of elements which trigger replication --> <attribute name="ReplQueueMaxElements">0</attribute> <!-- Name of cluster. Needs to be the same for all clusters, in order to find each other --> <attribute name="ClusterName">Product-Cache</attribute> <!-- JGroups protocol stack properties. Can also be a URL, e.g. file:/home/bela/default.xml <attribute name="ClusterProperties"></attribute> --> <attribute name="ClusterConfig"> <config> <!-- UDP: if you have a multihomed machine, set the bind_addr attribute to the appropriate NIC IP address, e.g bind_addr="192.168.0.2" --> <!-- UDP: On Windows machines, because of the media sense feature being broken with multicast (even after disabling media sense) set the loopback attribute to true --> <UDP mcast_addr="192.168.0.2" mcast_port="48862" ip_ttl="64" ip_mcast="true" mcast_send_buf_size="150000" mcast_recv_buf_size="80000" ucast_send_buf_size="150000" ucast_recv_buf_size="80000" loopback="false"/> <PING timeout="2000" num_initial_members="3" up_thread="false" down_thread="false"/> <MERGE2 min_interval="10000" max_interval="20000"/> <!-- <FD shun="true" up_thread="true" down_thread="true" />--> <FD_SOCK/> <VERIFY_SUSPECT timeout="1500" up_thread="false" down_thread="false"/> <pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800" max_xmit_size="8192" up_thread="false" down_thread="false"/> <UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10" down_thread="false"/> <pbcast.STABLE desired_avg_gossip="20000" up_thread="false" down_thread="false"/> <FRAG frag_size="8192" down_thread="false" up_thread="false"/> <pbcast.GMS join_timeout="5000" join_retry_timeout="2000" shun="true" print_local_addr="true"/> <pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/> </config> </attribute> <!-- Whether or not to fetch state on joining a cluster NOTE this used to be called FetchStateOnStartup and has been renamed to be more descriptive. --> <attribute name="FetchInMemoryState">true</attribute> <!-- The max amount of time (in milliseconds) we wait until the initial state (ie. the contents of the cache) are retrieved from existing members in a clustered environment --> <attribute name="InitialStateRetrievalTimeout">15000</attribute> <!-- Number of milliseconds to wait until all responses for a synchronous call have been received. --> <attribute name="SyncReplTimeout">15000</attribute> <!-- Max number of milliseconds to wait for a lock acquisition --> <attribute name="LockAcquisitionTimeout">1000</attribute> <!-- Name of the eviction policy class. --> <attribute name="EvictionPolicyClass"/> <!-- Indicate whether to use marshalling or not. Set this to true if you are running under a scoped class loader, e.g., inside an application server. Default is "false". --> <attribute name="UseMarshalling">false</attribute> </mbean> <!-- Uncomment to get a graphical view of the TreeCache MBean above --> <!-- <mbean code="org.jboss.cache.TreeCacheView" name="jboss.cache:service=TreeCacheView">--> <!-- <depends>jboss.cache:service=TreeCache</depends>--> <!-- <attribute name="CacheService">jboss.cache:service=TreeCache</attribute>--> <!-- </mbean>--> </server> |
然后我们使用它
1 |
public static final String PRODUCT_NODE = "/Test/Product";
/*
* 初始化缓存
*/
private boolean initCache()
{
try
{
treeCache = new TreeCache();
org.jboss.cache.PropertyConfigurator config = new org.jboss.cache.PropertyConfigurator();
config.configure(treeCache, "conf/cache.xml");
treeCache.start();
treeCache.put(PRODUCT_NODE, new HashMap());// 创建节点
logger.info("缓存系统初始化成功!");
}
catch (Exception e)
{
logger.error("初始化缓存失败:" + e.getMessage());
return false;
}
return true;
}
|
向TreeCache添加元素
1 | public void addElement(Object key, Object value) throws Exception
{
treeCache.put(PRODUCT_NODE, key, value);
}
|
从TreeCache获取元素
1 | public Object getElement(Object key) throws Exception
{
return treeCache.get(PRODUCT_NODE, key);
}
|
从TreeCache删除元素
1 | public Object removeElement(Object key) throws Exception
{
return treeCache.remove(PRODUCT_NODE, key);
}
|
判断元素是否存在于TreeCache
1 | public booleanexistElement(Object key) throws Exception
{
return treeCache.exists(PRODUCT_NODE, key);
}
|
平均得分
(0 次评分)
评论: 3 | 查看次数: 1259
- 共有 3 条评论
- 共有 3 条评论
发表评论
订阅
上一篇
|

文章来自:
标签: 





精力剤
すすきの
デリヘル
人妻 風俗
熟女
吉原 ソープ
東京 マンスリー
マンスリー 渋谷
マンスリー 品川
マンスリー 大田区
マンスリー 新宿
マンスリー 中央
マンスリー 千代田
マンスリー 港
マンスリー 文京区
マンスリー 中野
rs gold
runescape gold
runescape money
cheap runescape gold
runescape gp
runescape items
runescape power leveling
rs power leveling
runescape gold
runescape money
runescape gold
runescape money
rs gold