public class RedissonLock extends Object implements RLock
Lock
Implements reentrant lock.Modifier and Type | Field and Description |
---|---|
protected long |
internalLockLeaseTime |
static long |
LOCK_EXPIRATION_INTERVAL_SECONDS |
Modifier | Constructor and Description |
---|---|
protected |
RedissonLock(CommandExecutor commandExecutor,
String name,
UUID id) |
Modifier and Type | Method and Description |
---|---|
boolean |
clearExpire()
Remove the existing timeout of Redisson object
|
io.netty.util.concurrent.Future<Boolean> |
clearExpireAsync() |
boolean |
delete()
Deletes the object
|
io.netty.util.concurrent.Future<Boolean> |
deleteAsync() |
boolean |
expire(long timeToLive,
TimeUnit timeUnit) |
io.netty.util.concurrent.Future<Boolean> |
expireAsync(long timeToLive,
TimeUnit timeUnit) |
boolean |
expireAt(Date timestamp) |
boolean |
expireAt(long timestamp) |
io.netty.util.concurrent.Future<Boolean> |
expireAtAsync(Date timestamp) |
io.netty.util.concurrent.Future<Boolean> |
expireAtAsync(long timestamp) |
void |
forceUnlock()
Unlocks lock independently of state
|
protected <V> V |
get(io.netty.util.concurrent.Future<V> future) |
int |
getHoldCount()
Number of holds on this lock by the current thread
|
String |
getName()
Returns name of object
|
boolean |
isHeldByCurrentThread()
Checks if this lock is held by the current thread
|
boolean |
isLocked()
Checks if this lock locked by any thread in Redisson cluster
|
void |
lock() |
void |
lock(long leaseTime,
TimeUnit unit)
Acquires the lock.
|
void |
lockInterruptibly() |
void |
lockInterruptibly(long leaseTime,
TimeUnit unit)
Acquires the lock.
|
void |
migrate(String host,
int port,
int database)
Transfer a object from a source Redis instance to a destination Redis instance
|
io.netty.util.concurrent.Future<Void> |
migrateAsync(String host,
int port,
int database)
Transfer a object from a source Redis instance to a destination Redis instance
in async mode
|
boolean |
move(int database)
Move object to another database
|
io.netty.util.concurrent.Future<Boolean> |
moveAsync(int database)
Move object to another database in async mode
|
Condition |
newCondition() |
protected <V> io.netty.util.concurrent.Promise<V> |
newPromise() |
protected <V> io.netty.util.concurrent.Future<V> |
newSucceededFuture(V result) |
long |
remainTimeToLive()
Remaining time to live of Redisson object that has a timeout
|
io.netty.util.concurrent.Future<Long> |
remainTimeToLiveAsync() |
void |
rename(String newName)
Rename current object key to
newName |
io.netty.util.concurrent.Future<Void> |
renameAsync(String newName)
Rename current object key to
newName
in async mode |
boolean |
renamenx(String newName)
Rename current object key to
newName
only if new key is not exists |
io.netty.util.concurrent.Future<Boolean> |
renamenxAsync(String newName)
Rename current object key to
newName
in async mode only if new key is not exists |
boolean |
tryLock() |
boolean |
tryLock(long waitTime,
long leaseTime,
TimeUnit unit)
Returns
true as soon as the lock is acquired. |
boolean |
tryLock(long time,
TimeUnit unit) |
void |
unlock() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
clearExpire, expire, expireAt, expireAt, remainTimeToLive
clearExpireAsync, expireAsync, expireAtAsync, expireAtAsync, remainTimeToLiveAsync
migrateAsync, moveAsync, renameAsync, renamenxAsync
public static final long LOCK_EXPIRATION_INTERVAL_SECONDS
protected long internalLockLeaseTime
protected RedissonLock(CommandExecutor commandExecutor, String name, UUID id)
public void lock(long leaseTime, TimeUnit unit)
RLock
If the lock is not available then the current thread becomes
disabled for thread scheduling purposes and lies dormant until the
lock has been acquired.
If the lock is acquired, it is held until unlock
is invoked,
or until leaseTime milliseconds have passed
since the lock was granted - whichever comes first.
lock
in interface RLock
leaseTime
- the maximum time to hold the lock after granting it,
before automatically releasing it if it hasn't already been released by invoking unlock
.
If leaseTime is -1, hold the lock until explicitly unlocked.unit
- the time unit of the leaseTime
argumentpublic void lockInterruptibly() throws InterruptedException
lockInterruptibly
in interface Lock
InterruptedException
public void lockInterruptibly(long leaseTime, TimeUnit unit) throws InterruptedException
RLock
If the lock is not available then the current thread becomes
disabled for thread scheduling purposes and lies dormant until the
lock has been acquired.
If the lock is acquired, it is held until unlock
is invoked,
or until leaseTime have passed
since the lock was granted - whichever comes first.
lockInterruptibly
in interface RLock
leaseTime
- the maximum time to hold the lock after granting it,
before automatically releasing it if it hasn't already been released by invoking unlock
.
If leaseTime is -1, hold the lock until explicitly unlocked.unit
- the time unit of the leaseTime
argumentInterruptedException
- - if the thread is interrupted before or during this method.public boolean tryLock(long waitTime, long leaseTime, TimeUnit unit) throws InterruptedException
RLock
true
as soon as the lock is acquired.
If the lock is currently held by another thread in this or any
other process in the distributed system this method keeps trying
to acquire the lock for up to waitTime
before
giving up and returning false
. If the lock is acquired,
it is held until unlock
is invoked, or until leaseTime
have passed since the lock was granted - whichever comes first.tryLock
in interface RLock
waitTime
- the maximum time to aquire the lockInterruptedException
public boolean tryLock(long time, TimeUnit unit) throws InterruptedException
tryLock
in interface Lock
InterruptedException
public Condition newCondition()
newCondition
in interface Lock
public void forceUnlock()
RLock
forceUnlock
in interface RLock
public boolean isLocked()
RLock
public boolean isHeldByCurrentThread()
RLock
isHeldByCurrentThread
in interface RLock
true
if held by current thread
otherwise false
public int getHoldCount()
RLock
getHoldCount
in interface RLock
0
if this lock is not held by current threadpublic boolean delete()
RObject
public io.netty.util.concurrent.Future<Boolean> deleteAsync()
deleteAsync
in interface RObjectAsync
public boolean expire(long timeToLive, TimeUnit timeUnit)
expire
in interface RExpirable
public io.netty.util.concurrent.Future<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit)
expireAsync
in interface RExpirableAsync
public boolean expireAt(long timestamp)
expireAt
in interface RExpirable
public io.netty.util.concurrent.Future<Boolean> expireAtAsync(long timestamp)
expireAtAsync
in interface RExpirableAsync
public boolean expireAt(Date timestamp)
expireAt
in interface RExpirable
public io.netty.util.concurrent.Future<Boolean> expireAtAsync(Date timestamp)
expireAtAsync
in interface RExpirableAsync
public boolean clearExpire()
RExpirable
clearExpire
in interface RExpirable
true
if timeout was removed
false
if object does not exist or does not have an associated timeoutpublic io.netty.util.concurrent.Future<Boolean> clearExpireAsync()
clearExpireAsync
in interface RExpirableAsync
public long remainTimeToLive()
RExpirable
remainTimeToLive
in interface RExpirable
public io.netty.util.concurrent.Future<Long> remainTimeToLiveAsync()
remainTimeToLiveAsync
in interface RExpirableAsync
protected <V> V get(io.netty.util.concurrent.Future<V> future)
protected <V> io.netty.util.concurrent.Promise<V> newPromise()
protected <V> io.netty.util.concurrent.Future<V> newSucceededFuture(V result)
public void rename(String newName)
RObject
newName
public io.netty.util.concurrent.Future<Void> renameAsync(String newName)
RObjectAsync
newName
in async moderenameAsync
in interface RObjectAsync
public void migrate(String host, int port, int database)
RObject
public io.netty.util.concurrent.Future<Void> migrateAsync(String host, int port, int database)
RObjectAsync
migrateAsync
in interface RObjectAsync
host
- - destination hostport
- - destination portdatabase
- - destination databasepublic boolean move(int database)
RObject
public io.netty.util.concurrent.Future<Boolean> moveAsync(int database)
RObjectAsync
moveAsync
in interface RObjectAsync
true
if key was moved else false
public boolean renamenx(String newName)
RObject
newName
only if new key is not existspublic io.netty.util.concurrent.Future<Boolean> renamenxAsync(String newName)
RObjectAsync
newName
in async mode only if new key is not existsrenamenxAsync
in interface RObjectAsync
Copyright © 2014–2015. All rights reserved.