Redis 位存储与验证

Jedis jedis = JedisConnectUtil.getJedisDB(Constants.JedisDBMY);//创建redis连接对象

String [] authNum = auth.split(",");//解析位字符串

//逐位存储
//                for(int a = 0;a<authNum.length;a++){
//                    jedis.setbit("mgrAuth:"+appId+":"+userName, Long.valueOf(authNum[a]), true);
//                }

//编辑后一次存储全部(默认64位,可以继续set自动扩充)
                BitSet bits=new BitSet();
                for(int a = 0;a<authNum.length;a++){
                    bits.set(Integer.valueOf(authNum[a]));
                }
                jedis.set(("key").getBytes(),bits.toByteArray());
        }

验证指定位:Boolean flag = jedis.getbit("key:".getBits(),Long.valueOf(authNum));
                status = 0;
                msg = "验证成功";

              true /false

验证整个位的大小:

           BitSet bits=BitSet.valueOf(jedis.get(("key").getBytes()));//操作权限
          
            BitSet bits1=BitSet.valueOf(jedis.get(("key1").getBytes()));//权限1


            //验证权限1的合法性(即权限1小于操作权限)
            bits1.or(bits);//(或之后结果等于前者)
            if(bits1.equals(bits)){
                system.out.println("验证成功")
            }


             

猜你喜欢

转载自blog.csdn.net/rocrunwang/article/details/81199495
今日推荐