public class RedissonLock extends RedissonObject implements RLock
Lock
Implements reentrant lock.Implements a non-fair locking so doesn't guarantees an acquire order.
| Modifier and Type | Class and Description |
|---|---|
static class |
RedissonLock.ExpirationEntry |
| Modifier and Type | Field and Description |
|---|---|
protected long |
internalLockLeaseTime |
protected LockPubSub |
pubSub |
codec, name| Constructor and Description |
|---|
RedissonLock(CommandAsyncExecutor commandExecutor,
String name) |
| Modifier and Type | Method and Description |
|---|---|
protected RFuture<Void> |
acquireFailedAsync(long waitTime,
TimeUnit unit,
long threadId) |
boolean |
clearExpire()
Clear an expire timeout or expire date for object.
|
RFuture<Boolean> |
clearExpireAsync()
Clear an expire timeout or expire date for object in async mode.
|
protected RFuture<Boolean> |
clearExpireAsync(String... keys) |
RFuture<Boolean> |
deleteAsync()
Delete object in async mode
|
protected <T> RFuture<T> |
evalWriteAsync(String key,
Codec codec,
RedisCommand<T> evalCommandType,
String script,
List<Object> keys,
Object... params) |
boolean |
expire(long timeToLive,
TimeUnit timeUnit)
Set a timeout for object.
|
RFuture<Boolean> |
expireAsync(long timeToLive,
TimeUnit timeUnit)
Set a timeout for object in async mode.
|
protected RFuture<Boolean> |
expireAsync(long timeToLive,
TimeUnit timeUnit,
String... keys) |
boolean |
expireAt(Date timestamp)
Set an expire date for object.
|
boolean |
expireAt(long timestamp)
Set an expire date for object.
|
RFuture<Boolean> |
expireAtAsync(Date timestamp)
Set an expire date for object in async mode.
|
RFuture<Boolean> |
expireAtAsync(long timestamp)
Set an expire date for object in async mode.
|
protected RFuture<Boolean> |
expireAtAsync(long timestamp,
String... keys) |
boolean |
forceUnlock()
Unlocks the lock independently of its state
|
RFuture<Boolean> |
forceUnlockAsync()
Unlocks the lock independently of its state
|
protected String |
getEntryName() |
int |
getHoldCount()
Number of holds on this lock by the current thread
|
RFuture<Integer> |
getHoldCountAsync()
Number of holds on this lock by the current thread
|
protected String |
getLockName(long threadId) |
RFuture<Boolean> |
isExistsAsync()
Check object existence in async mode.
|
boolean |
isHeldByCurrentThread()
Checks if this lock is held by the current thread
|
boolean |
isHeldByThread(long threadId)
Checks if the lock is held by thread with defined
threadId |
boolean |
isLocked()
Checks if the lock locked by any thread
|
RFuture<Boolean> |
isLockedAsync()
Checks if the lock locked by any thread
|
void |
lock() |
void |
lock(long leaseTime,
TimeUnit unit)
Acquires the lock with defined
leaseTime. |
RFuture<Void> |
lockAsync()
Acquires the lock.
|
RFuture<Void> |
lockAsync(long currentThreadId)
Acquires the lock by thread with defined
threadId. |
RFuture<Void> |
lockAsync(long leaseTime,
TimeUnit unit)
Acquires the lock with defined
leaseTime. |
RFuture<Void> |
lockAsync(long leaseTime,
TimeUnit unit,
long currentThreadId)
Acquires the lock with defined
leaseTime and threadId. |
void |
lockInterruptibly() |
void |
lockInterruptibly(long leaseTime,
TimeUnit unit)
Acquires the lock with defined
leaseTime. |
Condition |
newCondition() |
long |
remainTimeToLive()
Remaining time to live of Redisson object that has a timeout
|
RFuture<Long> |
remainTimeToLiveAsync()
Remaining time to live of Redisson object that has a timeout
|
protected RFuture<Boolean> |
renewExpirationAsync(long threadId) |
protected RFuture<RedissonLockEntry> |
subscribe(long threadId) |
boolean |
tryLock() |
boolean |
tryLock(long waitTime,
long leaseTime,
TimeUnit unit)
Tries to acquire the lock with defined
leaseTime. |
boolean |
tryLock(long waitTime,
TimeUnit unit) |
RFuture<Boolean> |
tryLockAsync()
Tries to acquire the lock.
|
RFuture<Boolean> |
tryLockAsync(long threadId)
Tries to acquire the lock by thread with specified
threadId. |
RFuture<Boolean> |
tryLockAsync(long waitTime,
long leaseTime,
TimeUnit unit)
Tries to acquire the lock with defined
leaseTime. |
RFuture<Boolean> |
tryLockAsync(long waitTime,
long leaseTime,
TimeUnit unit,
long currentThreadId)
Tries to acquire the lock by thread with specified
threadId and leaseTime. |
RFuture<Boolean> |
tryLockAsync(long waitTime,
TimeUnit unit)
Tries to acquire the lock.
|
void |
unlock() |
RFuture<Void> |
unlockAsync()
Unlocks the lock
|
RFuture<Void> |
unlockAsync(long threadId)
Unlocks the lock.
|
protected RFuture<Boolean> |
unlockInnerAsync(long threadId) |
protected void |
unsubscribe(RFuture<RedissonLockEntry> future,
long threadId) |
addListener, addListener, addListenerAsync, addListenerAsync, copy, copyAsync, delete, deleteAsync, dump, dumpAsync, encode, encode, encode, encode, encodeMapKey, encodeMapKeys, encodeMapValue, encodeMapValues, get, getCodec, getIdleTime, getIdleTimeAsync, getLockByMapKey, getLockByValue, getName, getName, isExists, migrate, migrateAsync, move, moveAsync, prefixName, removeListener, removeListenerAsync, removeListenersAsync, rename, renameAsync, renamenx, renamenxAsync, restore, restore, restoreAndReplace, restoreAndReplace, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, sizeInMemory, sizeInMemoryAsync, sizeInMemoryAsync, sizeInMemoryAsync, suffixName, toSeconds, toStream, touch, touchAsync, unlink, unlinkAsyncclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetName, remainTimeToLiveremainTimeToLiveAsyncaddListener, copy, delete, dump, getCodec, getIdleTime, getName, isExists, migrate, move, removeListener, rename, renamenx, restore, restore, restoreAndReplace, restoreAndReplace, sizeInMemory, touch, unlinkaddListenerAsync, copyAsync, dumpAsync, getIdleTimeAsync, migrateAsync, moveAsync, removeListenerAsync, renameAsync, renamenxAsync, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, sizeInMemoryAsync, touchAsync, unlinkAsyncprotected long internalLockLeaseTime
protected final LockPubSub pubSub
public RedissonLock(CommandAsyncExecutor commandExecutor, String name)
protected String getEntryName()
protected String getLockName(long threadId)
public void lock(long leaseTime,
TimeUnit unit)
RLockleaseTime.
Waits if necessary until lock became available.
Lock will be released automatically after defined leaseTime interval.public void lockInterruptibly()
throws InterruptedException
lockInterruptibly in interface LockInterruptedExceptionpublic void lockInterruptibly(long leaseTime,
TimeUnit unit)
throws InterruptedException
RLockleaseTime.
Waits if necessary until lock became available.
Lock will be released automatically after defined leaseTime interval.lockInterruptibly in interface RLockleaseTime - the maximum time to hold the lock after it's acquisition,
if it hasn't already been released by invoking unlock.
If leaseTime is -1, hold the lock until explicitly unlocked.unit - the time unitInterruptedException - - if the thread is interruptedprotected <T> RFuture<T> evalWriteAsync(String key, Codec codec, RedisCommand<T> evalCommandType, String script, List<Object> keys, Object... params)
protected RFuture<Void> acquireFailedAsync(long waitTime, TimeUnit unit, long threadId)
public boolean tryLock(long waitTime,
long leaseTime,
TimeUnit unit)
throws InterruptedException
RLockleaseTime.
Waits up to defined waitTime if necessary until the lock became available.
Lock will be released automatically after defined leaseTime interval.tryLock in interface RLockwaitTime - the maximum time to acquire the lockleaseTime - lease timeunit - time unittrue if lock is successfully acquired,
otherwise false if lock is already set.InterruptedException - - if the thread is interruptedprotected RFuture<RedissonLockEntry> subscribe(long threadId)
protected void unsubscribe(RFuture<RedissonLockEntry> future, long threadId)
public boolean tryLock(long waitTime,
TimeUnit unit)
throws InterruptedException
tryLock in interface LockInterruptedExceptionpublic Condition newCondition()
newCondition in interface Lockpublic boolean forceUnlock()
RLockforceUnlock in interface RLocktrue if lock existed and now unlocked
otherwise falsepublic RFuture<Boolean> forceUnlockAsync()
RLockAsyncforceUnlockAsync in interface RLockAsynctrue if lock existed and now unlocked
otherwise falsepublic boolean isLocked()
RLockpublic RFuture<Boolean> isLockedAsync()
RLockAsyncisLockedAsync in interface RLockAsynctrue if locked otherwise falsepublic RFuture<Boolean> isExistsAsync()
RObjectAsyncisExistsAsync in interface RObjectAsyncisExistsAsync in class RedissonObjecttrue if object exists and false otherwisepublic boolean isHeldByCurrentThread()
RLockisHeldByCurrentThread in interface RLocktrue if held by current thread
otherwise falsepublic boolean isHeldByThread(long threadId)
RLockthreadIdisHeldByThread in interface RLockthreadId - Thread ID of locking threadtrue if held by thread with given id
otherwise falsepublic RFuture<Integer> getHoldCountAsync()
RLockAsyncgetHoldCountAsync in interface RLockAsync0 if this lock is not held by current threadpublic int getHoldCount()
RLockgetHoldCount in interface RLock0 if this lock is not held by current threadpublic RFuture<Boolean> deleteAsync()
RObjectAsyncdeleteAsync in interface RObjectAsyncdeleteAsync in class RedissonObjecttrue if object was deleted false if notpublic RFuture<Void> unlockAsync()
RLockAsyncunlockAsync in interface RLockAsyncpublic RFuture<Void> unlockAsync(long threadId)
RLockAsyncIllegalMonitorStateException
if lock isn't locked by thread with specified threadId.unlockAsync in interface RLockAsyncthreadId - id of threadpublic RFuture<Void> lockAsync()
RLockAsynclockAsync in interface RLockAsyncpublic RFuture<Void> lockAsync(long leaseTime, TimeUnit unit)
RLockAsyncleaseTime.
Waits if necessary until lock became available.
Lock will be released automatically after defined leaseTime interval.lockAsync in interface RLockAsyncleaseTime - the maximum time to hold the lock after it's acquisition,
if it hasn't already been released by invoking unlock.
If leaseTime is -1, hold the lock until explicitly unlocked.unit - the time unitpublic RFuture<Void> lockAsync(long currentThreadId)
RLockAsyncthreadId.
Waits if necessary until lock became available.lockAsync in interface RLockAsynccurrentThreadId - id of threadpublic RFuture<Void> lockAsync(long leaseTime, TimeUnit unit, long currentThreadId)
RLockAsyncleaseTime and threadId.
Waits if necessary until lock became available.
Lock will be released automatically after defined leaseTime interval.lockAsync in interface RLockAsyncleaseTime - the maximum time to hold the lock after it's acquisition,
if it hasn't already been released by invoking unlock.
If leaseTime is -1, hold the lock until explicitly unlocked.unit - the time unitcurrentThreadId - id of threadpublic RFuture<Boolean> tryLockAsync()
RLockAsynctryLockAsync in interface RLockAsynctrue if lock acquired otherwise falsepublic RFuture<Boolean> tryLockAsync(long threadId)
RLockAsyncthreadId.tryLockAsync in interface RLockAsyncthreadId - id of threadtrue if lock acquired otherwise falsepublic RFuture<Boolean> tryLockAsync(long waitTime, TimeUnit unit)
RLockAsyncwaitTime if necessary until the lock became available.tryLockAsync in interface RLockAsyncwaitTime - the maximum time to acquire the lockunit - time unittrue if lock is successfully acquired,
otherwise false if lock is already set.public RFuture<Boolean> tryLockAsync(long waitTime, long leaseTime, TimeUnit unit)
RLockAsyncleaseTime.
Waits up to defined waitTime if necessary until the lock became available.
Lock will be released automatically after defined leaseTime interval.tryLockAsync in interface RLockAsyncwaitTime - the maximum time to acquire the lockleaseTime - lease timeunit - time unittrue if lock is successfully acquired,
otherwise false if lock is already set.public RFuture<Boolean> tryLockAsync(long waitTime, long leaseTime, TimeUnit unit, long currentThreadId)
RLockAsyncthreadId and leaseTime.
Waits up to defined waitTime if necessary until the lock became available.
Lock will be released automatically after defined leaseTime interval.tryLockAsync in interface RLockAsyncwaitTime - time interval to acquire lockleaseTime - time interval after which lock will be released automaticallyunit - the time unit of the waitTime and leaseTime argumentscurrentThreadId - id of threadtrue if lock acquired otherwise falsepublic boolean expire(long timeToLive,
TimeUnit timeUnit)
RExpirableexpire in interface RExpirabletimeToLive - - timeout before object will be deletedtimeUnit - - timeout time unittrue if the timeout was set and false if notpublic RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit)
RExpirableAsyncexpireAsync in interface RExpirableAsynctimeToLive - - timeout before object will be deletedtimeUnit - - timeout time unittrue if the timeout was set and false if notpublic boolean expireAt(long timestamp)
RExpirableexpireAt in interface RExpirabletimestamp - - expire date in milliseconds (Unix timestamp)true if the timeout was set and false if notpublic RFuture<Boolean> expireAtAsync(long timestamp)
RExpirableAsyncexpireAtAsync in interface RExpirableAsynctimestamp - - expire date in milliseconds (Unix timestamp)true if the timeout was set and false if notpublic boolean expireAt(Date timestamp)
RExpirableexpireAt in interface RExpirabletimestamp - - expire datetrue if the timeout was set and false if notpublic RFuture<Boolean> expireAtAsync(Date timestamp)
RExpirableAsyncexpireAtAsync in interface RExpirableAsynctimestamp - - expire datetrue if the timeout was set and false if notpublic boolean clearExpire()
RExpirableclearExpire in interface RExpirabletrue if timeout was removed
false if object does not exist or does not have an associated timeoutpublic RFuture<Boolean> clearExpireAsync()
RExpirableAsyncclearExpireAsync in interface RExpirableAsynctrue if the timeout was cleared and false if notpublic long remainTimeToLive()
RExpirableremainTimeToLive in interface RExpirablepublic RFuture<Long> remainTimeToLiveAsync()
RExpirableAsyncremainTimeToLiveAsync in interface RExpirableAsyncprotected RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit, String... keys)
Copyright © 2014–2020 Redisson. All rights reserved.