我需要设计一个缓存来存储来自多个客户端的对象。这些客户都可以并行。这些对象需要存储在memcached中,并在以后检索以供使用。
String newKey ;
private synchronized String setData(Data newData) {
do {
newKey = createRandomKey() ;
} while (memcacheClient.get(newKey) != null) ;
memcacheClient.set(newKey, 10000, newData) ;
}
我的问题是,这种方法会成为并行客户端访问的瓶颈吗?
OR
我应该创建共享列表和线程吗?该线程将异步执行setData?
答案 0 :(得分:1)
循环的延迟很大程度上取决于createRondomKey可以实现的随机性。你必须使用随机密钥吗?是否有可能提出一些语义命名方案(例如,userid / category / blabla)?这也将为您节省记住随机密钥的努力。