代码: import redis.clients.jedis.Jedis;
import java.util.BitSet; import java.util.HashSet; import java.util.Random; import java.util.Set;
public class BitmapTest {
private Jedis jedis = null;
private void init() {
try {
jedis = new Jedis("192.168.97.57", 6379);
jedis.auth("666666");
} catch (Exception e) {
e.printStackTrace();
}
}
private void destroy() {
if (jedis != null) {
jedis.close();
}
}
public boolean get(String key, int companyId) {
init();
boolean result = jedis.getbit(key, companyId);
destroy();
return result;
}
public Set<Integer> getCid(String sid) {
init();
Set<Integer> set = new HashSet<>(100);
try {
BitSet b = BitSet.valueOf(jedis.get(String.format("sid:%s", sid)).getBytes());
for (int i = b.nextSetBit(0); i >= 0; i = b.nextSetBit(i + 1)) {
set.add(i);
}
} catch (Exception e) {
e.printStackTrace();
}
destroy();
return set;
}
public void insert() {
init();
try {
for (int i = 0; i < 3; i++) {
String key = String.format("sid:%08d", i);
System.out.println("key = " + key);
jedis.del(key);
for (int j = 0; j < 5; j++) {
int cid = new Random().nextInt(100000);
System.out.println("setbit = " + key + ":" + cid);
jedis.setbit(key, cid, true);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
destroy();
}
}
public static void main(String[] args) {
BitmapTest test = new BitmapTest();
test.insert();
Set<Integer> cidSet = test.getCid("00000000");
System.out.println("cidSet = " + cidSet.size());
for (Integer cid : cidSet) {
System.out.println("cid = " + cid);
}
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.