NutzCN Logo
问答 账号注册 控制账号唯一的问题
发布于 2832天前 作者 Rekoe 1863 次浏览 复制 上一个帖子 下一个帖子
标签:

场景
手机设备device_id 后台没有自动创建一个账号数据,现在出现了同时创建了多个device_id 的账号,这个场景如何限制 是加锁还是假数据库唯一约束?

10 回复

如果加唯一约束的话 ,如果某个线程会出现异常提示,那再重新查询一次数据库么?

有redis的话, 可以用 setnx 来解决

刚网上找了资料看了下 说这个坑也不少

device_id 其实是什么东西...

手机的唯一标识

@wendal 感觉还是加方法锁是不是更好些

方法锁就单机咯

 private Object obj = new Object();
    
    public User getUser(String devid){
    	User user = dao.fetch(getClass(),devid);
    	if(user == null){
    		synchronized (obj) {
    			user = dao.fetch(getClass(),devid);
    			if(user == null){
    				user = dao.insert...
    			}
			}
    	}
    	return user;
    }

这样

@wendal 另外 兽总setnx 怎么配合过期时间一起用?

调用setnx然后调用EXPIRE 不就好了?

添加回复
请先登陆
回到顶部