1

我需要设计一个缓存来存储来自多个客户端的对象。这些客户端都可以并行出现。这些对象需要存储在 memcached 上,稍后检索以供使用。

String newKey ;
private synchronized String setData(Data newData) {
    do {
        newKey = createRandomKey() ;
    } while (memcacheClient.get(newKey) != null) ;
    memcacheClient.set(newKey, 10000, newData) ;
}

我的问题是,这种方法会成为并行客户端访问的瓶颈吗?

或者

我应该创建一个共享列表和一个线程吗?线程将异步执行 setData 吗?

4

1 回答 1

1

循环的延迟很大程度上取决于随机 createRondomKey 可以实现的方式。你必须使用随机密钥吗?是否可以提出一些语义命名方案(例如,userid/category/blabla)?这也将节省您记住随机密钥的努力。

于 2012-10-20T21:21:37.897 回答