我正在使用Apache Ignite和Spring Data . 我需要一个列“用户名”才能是唯一的 . 事实上,“用户名”是Ignite缓存的关键 . 我认为点燃还没有实现独特的约束 . 使用普通的点燃API,我不确定我是否可以像以下一样锁定:
IgniteCache<String, Integer> cache = ignite.cache("userCache");
Lock lock = cache.lock("username1");
lock.lock();
//check if doesn't exist yet
...
因为“username1”尚不存在 . 还有其他方法吗?
2 回答
Spring Data和SpringTransactionManager的当前解决方案是:
但是,由于我的系统中名称冲突的可能性很小,因此optimisticTransactionManager也应该可以工作并具有更好的性能 .
我相信你的方法会奏效,但是,你想要达到的目标有一个合适的方法:IgniteCache.putIfAbsent