redisson提供对redis支持的锁定的支持。它还提供了使用springcache框架的实现。但根据我看到的情况,当尝试使用springcache框架更新缓存中的密钥时,默认情况下不会调用锁定。redisson有单独的api来锁定特定的密钥。对吗?另外,锁定api似乎将键作为输入,所以我不清楚锁定是如何工作的。对于锁定,我假设您需要缓存名称和密钥。我是redis的新成员,所以我非常感谢你对我的帮助。谢谢
92dk7w1h1#
首先,redisson中的锁定是由redis实现的,而不仅仅用于redis的更新。例如,如果要实现如下原子操作:从redis获取键值根据某种逻辑计算一个新值将新值保存到redis和mysql您可以使用redisson lock以原子方式进行操作。其次,在redis中,set/update命令是原子的,如果只更新值,则不需要锁定密钥。而对于锁api,Redison实现了按redis key/value锁,所以您只需要提供lock key,它通常包含一个资源id和资源类型(比如lock:user:31352")
1条答案
按热度按时间92dk7w1h1#
首先,redisson中的锁定是由redis实现的,而不仅仅用于redis的更新。
例如,如果要实现如下原子操作:
从redis获取键值
根据某种逻辑计算一个新值
将新值保存到redis和mysql
您可以使用redisson lock以原子方式进行操作。
其次,在redis中,set/update命令是原子的,如果只更新值,则不需要锁定密钥。
而对于锁api,Redison实现了按redis key/value锁,所以您只需要提供lock key,它通常包含一个资源id和资源类型(比如lock:user:31352")