scala
libraryDependencies += "net.debasishg" %% "redisclient" % "3.10"
scala
import com.redis._
val redisClient = new RedisClient("localhost", 6379)
scala
import com.redis._
class DistributedLock(redisClient: RedisClient, lockKey: String, expireTime: Int) {
def acquireLock(): Boolean = {
val result = redisClient.set(lockKey, "locked", NX = true, EX = expireTime)
result.isDefined
}
def releaseLock(): Boolean = {
val result = redisClient.del(lockKey)
result.isDefined
}
}
scala
import com.redis._
val redisClient = new RedisClient("localhost", 6379)
val distributedLock = new DistributedLock(redisClient, "mylock", 10)
val lockAcquired = distributedLock.acquireLock()
if (lockAcquired) {
try {
} finally {
distributedLock.releaseLock()
}
} else {
}