public class RedissonLock extends RedissonBaseLock
Lock
Implements reentrant lock.Implements a non-fair locking so doesn't guarantees an acquire order.
RedissonBaseLock.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 |
---|---|
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) |
boolean |
expire(Instant instant)
Set an expire date for object.
|
boolean |
expire(long timeToLive,
TimeUnit timeUnit)
Set a timeout for object.
|
RFuture<Boolean> |
expireAsync(Instant instant)
Set an expire date 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)
Use
RExpirable.expire(Instant) instead |
boolean |
expireAt(long timestamp)
Use
RExpirable.expire(Instant) instead |
RFuture<Boolean> |
expireAtAsync(Date timestamp)
Use
RExpirableAsync.expireAsync(Instant) instead |
RFuture<Boolean> |
expireAtAsync(long timestamp)
Use
RExpirableAsync.expireAsync(Instant) instead |
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
|
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 . |
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<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() |
protected RFuture<Boolean> |
unlockInnerAsync(long threadId) |
protected void |
unsubscribe(RFuture<RedissonLockEntry> future,
long threadId) |
acquireFailed, acquireFailedAsync, cancelExpirationRenewal, deleteAsync, evalWriteAsync, getEntryName, getHoldCount, getHoldCountAsync, getLockName, isHeldByCurrentThread, isHeldByThread, isLocked, isLockedAsync, newCondition, renewExpirationAsync, scheduleExpirationRenewal, unlockAsync, unlockAsync
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, getRawName, getRawName, isExists, isExistsAsync, migrate, migrateAsync, move, moveAsync, prefixName, removeListener, removeListenerAsync, removeListenersAsync, rename, renameAsync, renamenx, renamenxAsync, restore, restore, restoreAndReplace, restoreAndReplace, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, setName, sizeInMemory, sizeInMemoryAsync, sizeInMemoryAsync, sizeInMemoryAsync, suffixName, toSeconds, toStream, touch, touchAsync, unlink, unlinkAsync
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getName, remainTimeToLive
remainTimeToLiveAsync
addListener, copy, delete, dump, getCodec, getIdleTime, getName, isExists, migrate, move, removeListener, rename, renamenx, restore, restore, restoreAndReplace, restoreAndReplace, sizeInMemory, touch, unlink
addListenerAsync, copyAsync, dumpAsync, getIdleTimeAsync, isExistsAsync, migrateAsync, moveAsync, removeListenerAsync, renameAsync, renamenxAsync, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, sizeInMemoryAsync, touchAsync, unlinkAsync
protected long internalLockLeaseTime
protected final LockPubSub pubSub
public RedissonLock(CommandAsyncExecutor commandExecutor, String name)
public void lock()
public void lock(long leaseTime, TimeUnit unit)
RLock
leaseTime
.
Waits if necessary until lock became available.
Lock will be released automatically after defined leaseTime
interval.leaseTime
- 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 void lockInterruptibly() throws InterruptedException
InterruptedException
public void lockInterruptibly(long leaseTime, TimeUnit unit) throws InterruptedException
RLock
leaseTime
.
Waits if necessary until lock became available.
Lock will be released automatically after defined leaseTime
interval.leaseTime
- 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 interruptedpublic boolean tryLock()
public boolean tryLock(long waitTime, long leaseTime, TimeUnit unit) throws InterruptedException
RLock
leaseTime
.
Waits up to defined waitTime
if necessary until the lock became available.
Lock will be released automatically after defined leaseTime
interval.waitTime
- 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
InterruptedException
public void unlock()
public boolean forceUnlock()
RLock
true
if lock existed and now unlocked
otherwise false
public RFuture<Boolean> forceUnlockAsync()
RLockAsync
true
if lock existed and now unlocked
otherwise false
protected RFuture<Boolean> unlockInnerAsync(long threadId)
unlockInnerAsync
in class RedissonBaseLock
public RFuture<Void> lockAsync()
RLockAsync
public RFuture<Void> lockAsync(long leaseTime, TimeUnit unit)
RLockAsync
leaseTime
.
Waits if necessary until lock became available.
Lock will be released automatically after defined leaseTime
interval.leaseTime
- 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)
RLockAsync
threadId
.
Waits if necessary until lock became available.currentThreadId
- id of threadpublic RFuture<Void> lockAsync(long leaseTime, TimeUnit unit, long currentThreadId)
RLockAsync
leaseTime
and threadId
.
Waits if necessary until lock became available.
Lock will be released automatically after defined leaseTime
interval.leaseTime
- 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()
RLockAsync
true
if lock acquired otherwise false
public RFuture<Boolean> tryLockAsync(long threadId)
RLockAsync
threadId
.threadId
- id of threadtrue
if lock acquired otherwise false
public RFuture<Boolean> tryLockAsync(long waitTime, TimeUnit unit)
RLockAsync
waitTime
if necessary until the lock became available.waitTime
- 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)
RLockAsync
leaseTime
.
Waits up to defined waitTime
if necessary until the lock became available.
Lock will be released automatically after defined leaseTime
interval.waitTime
- 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)
RLockAsync
threadId
and leaseTime
.
Waits up to defined waitTime
if necessary until the lock became available.
Lock will be released automatically after defined leaseTime
interval.waitTime
- 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 false
public boolean expire(long timeToLive, TimeUnit timeUnit)
RExpirable
expire
in interface RExpirable
timeToLive
- - 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)
RExpirableAsync
expireAsync
in interface RExpirableAsync
timeToLive
- - timeout before object will be deletedtimeUnit
- - timeout time unittrue
if the timeout was set and false
if notpublic boolean expireAt(long timestamp)
RExpirable
RExpirable.expire(Instant)
insteadexpireAt
in interface RExpirable
timestamp
- - expire date in milliseconds (Unix timestamp)true
if the timeout was set and false
if notpublic RFuture<Boolean> expireAtAsync(long timestamp)
RExpirableAsync
RExpirableAsync.expireAsync(Instant)
insteadexpireAtAsync
in interface RExpirableAsync
timestamp
- - expire date in milliseconds (Unix timestamp)true
if the timeout was set and false
if notpublic boolean expire(Instant instant)
RExpirable
expire
in interface RExpirable
instant
- - expire datetrue
if the timeout was set and false
if notpublic RFuture<Boolean> expireAsync(Instant instant)
RExpirableAsync
expireAsync
in interface RExpirableAsync
instant
- - expire datetrue
if the timeout was set and false
if notpublic boolean expireAt(Date timestamp)
RExpirable
RExpirable.expire(Instant)
insteadexpireAt
in interface RExpirable
timestamp
- - expire datetrue
if the timeout was set and false
if notpublic RFuture<Boolean> expireAtAsync(Date timestamp)
RExpirableAsync
RExpirableAsync.expireAsync(Instant)
insteadexpireAtAsync
in interface RExpirableAsync
timestamp
- - expire datetrue
if the timeout was set and false
if notpublic 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 RFuture<Boolean> clearExpireAsync()
RExpirableAsync
clearExpireAsync
in interface RExpirableAsync
true
if the timeout was cleared and false
if notpublic long remainTimeToLive()
RExpirable
remainTimeToLive
in interface RExpirable
public RFuture<Long> remainTimeToLiveAsync()
RExpirableAsync
remainTimeToLiveAsync
in interface RExpirableAsync
protected RFuture<Boolean> expireAsync(long timeToLive, TimeUnit timeUnit, String... keys)
Copyright © 2014–2021 Redisson. All rights reserved.