//公共分片数量,一旦开始使用不能更改这个值,否则会位置错乱private static final Integer SHARD_NUM = 100;/*** 判断value是否在zSet* @param setKey* @param value* @return*/public boolean isMemberInSet(String setKey, String value) {return redisTemplate.opsForSet().isMember(setKey, value);}/*** Set对大数据量进行分片存储* @param key 键* @param value 值* @param shardNum 分片数量* @return*/public Long setShardSet(String key, String value,Integer shardNum) {shardNum = ObjectUtil.isNotEmpty(shardNum) ? shardNum : this.SHARD_NUM;int hash = value.hashCode() & Integer.MAX_VALUE;int shard = hash % shardNum;return this.setAdd(key + shard,value);}/*** 分片查询,值是否在Set中* @param key 键* @param value 值* @param shardNum 分片数量* @return*/public boolean isMemberInShardSet(String key, String value,Integer shardNum) {shardNum = ObjectUtil.isNotEmpty(shardNum) ? shardNum : this.SHARD_NUM;int hash = value.hashCode() & Integer.MAX_VALUE;int shard = hash % shardNum;return this.isMemberInSet(key + shard,value);}