Get the App
SLTechnology News&Howtos  ›  Database  › 

Example Analysis of Redis distributed Lock

Shulou Source: shulou.com Published: 2022-05-31 19:53:50 09月22日 Update

Editor to share with you the example analysis of Redis distributed locks, I believe that most people do not know much about it, so share this article for your reference, I hope you can learn a lot after reading this article, let's go to know it!

First version:

@ Override public Long set (String key,T value, Long cacheSeconds) {if (value instanceof HashMap) {BoundHashOperations valueOperations = redisTemplate.boundHashOps (key); valueOperations.putAll ((Map) value); valueOperations.expire (cacheSeconds, TimeUnit.SECONDS) } else {/ / use map to store BoundHashOperations valueOperations = redisTemplate.boundHashOps (key); valueOperations.put (key, value); / / second valueOperations.expire (cacheSeconds, TimeUnit.SECONDS);} return null } @ Override public void del (String key) {redisTemplate.delete (key);}

Set and del are used to complete the occupation and release of locks. Later tests show that set is not thread-safe and often leads to data inconsistency in the case of concurrency.

Second version:

/ * * distributed lock * @ param range lock length allows how many requests to preempt resources * @ param key * @ return * / public boolean getLock (int range, String key) {ValueOperations valueOper1 = template.opsForValue (); return valueOper1.increment (key, 1)

Tags: Distributed articles examples analysis success content identity version threads consistency security not so much most cases data time more this method knowledge first edition Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno macOS vpn Docker MariaDB MySQL