Skip to content

puppe7/distributed-redis-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

50 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

distributed-redis-tool

Build Status codecov Maven Central

This is a simple distributed tools based on Redis.

Distributed lock

Distributed limiting

Contact

Mail: [email protected]

weixinchat.jpg

Features

  • High performance.
  • No deadlock.
  • Support Redis cluster, single.
  • Non-blocking lock.
  • blocking lock.

Quick start

How to use?

maven dependency:

<dependency>
    <groupId>top.crossoverjie.opensource</groupId>
    <artifactId>distributed-redis-tool</artifactId>
    <version>1.0.2</version>
</dependency>

configure bean:

@Configuration
public class RedisLockConfig {

    @Bean
    public RedisLock build(){
        RedisLock redisLock = new RedisLock() ;
        HostAndPort hostAndPort = new HostAndPort("127.0.0.1",7000) ;
        JedisCluster jedisCluster = new JedisCluster(hostAndPort) ;
        redisLock.setJedisCluster(jedisCluster) ;
        return redisLock ;
    }

}

Non-blocking lock like this:

    @Autowired
    private RedisLock redisLock ;

    public void use() {
        String key = "key";
        String request = UUID.randomUUID().toString();
        try {
            boolean locktest = redisLock.tryLock(key, request);
            if (!locktest) {
                System.out.println("locked error");
                return;
            }


            //do something

        } finally {
            redisLock.unlock(key,request) ;
        }

    }

Other apis:

//blocking lock
redisLock.lock(String key, String request);

//blocking lock, costom block time
redisLock.lock(String key, String request,int blockTime);

Packages

No packages published

Languages

  • Java 96.3%
  • Lua 3.7%