Redisson 初级使用心得

redis就不多说了。

Redisson实际上就是基于redis的一个小型框架。

本质上,Redisson就是一种锁。

举例,假如你卖100个衣服,同时调用一百多甚至数百并发接口,很有可能会出现衣服变为负数的情况,故而需要用到锁的概念去管控100的数量,保证其最小值为0。

话不多说,首先下两个jar包:

compile group: 'redis.clients', name: 'jedis', version: '2.9.0'
compile group: 'org.redisson', name: 'redisson', version: '3.5.4'

附上代码:

package db.redis;

import config.Const;
import org.redisson.api.RAtomicLong;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import util.StringUtil;

/**
 * redisson-pool模式
 * redisson是一个高并发的锁,确保唯一性,数据存储在redis中
 * create by Rock-Ayl 2019-6-13
 */
public class Redisson {

    public static RedissonClient client;
    protected static Config config;

    static {
        config = new Config();
        if (StringUtil.isEmpty(Const.RedisAuth)) {
            config.useSingleServer().setAddress("redis://" + Const.RedisHost + ":" + Const.RedisPort).setDatabase(Const.RedisDatabase);
        } else {
            config.useSingleServer().setAddress("redis://" + Const.RedisHost + ":" + Const.RedisPort).setPassword(Const.RedisAuth).setDatabase(Const.RedisDatabase);
        }
        client = org.redisson.Redisson.create(config);
    }

    public static RLock lock(String name) {
        RLock lock = client.getLock(name);
        return lock;
    }

    public static long nextId(String name) {
        RAtomicLong atomicLong = client.getAtomicLong(name);
        atomicLong.incrementAndGet();
        return atomicLong.get();
    }

    public static long getId(String name) {
        RAtomicLong atomicLong = client.getAtomicLong(name);
        return atomicLong.get();
    }

    public static void setNextId(String name, long value) {
        RAtomicLong atomicLong = client.getAtomicLong(name);
        atomicLong.set(value);
    }

    public static void main(String[] args) {
        System.out.println(Redisson.nextId("hello world!"));
    }

}

其中StringUtil不多说了

Const开头的都是常量,是redis的地址、端口、密码、数据库

简单替换就可以直接使用

传入的name是redis的Key

对应value则可以用来作为唯一的id或数量等等

稍微每个方法调用几次,就会明白其中的原理,妈妈再也不用担心并发了。

你可能感兴趣的:(java,后端,新人)