) con -> con.bitCount(key.getBytes(), start, end));
+ }
+
+
+ /**
+ * 对一个或多个保存二进制的字符串key进行元操作,并将结果保存到saveKey上。
+ *
+ * bitop and saveKey key [key...],对一个或多个key逻辑并,结果保存到saveKey。
+ * bitop or saveKey key [key...],对一个或多个key逻辑或,结果保存到saveKey。
+ * bitop xor saveKey key [key...],对一个或多个key逻辑异或,结果保存到saveKey。
+ * bitop xor saveKey key,对一个或多个key逻辑非,结果保存到saveKey。
+ *
+ *
+ * @param op 元操作类型;
+ * @param saveKey 元操作后将结果保存到saveKey所在的结构中。
+ * @param desKey 需要进行元操作的类型。
+ * @return 1:返回元操作值。
+ */
+ public Long bGetOp(RedisStringCommands.BitOperation op, String saveKey, String... desKey) {
+ byte[][] bytes = new byte[desKey.length][];
+ for (int i = 0; i < desKey.length; i++) {
+ bytes[i] = desKey[i].getBytes();
+ }
+ return redisTemplate.execute((RedisCallback) con -> con.bitOp(op, saveKey.getBytes(), bytes));
+ }
+
+ /**
+ * 对一个或多个保存二进制的字符串key进行元操作,并将结果保存到saveKey上,并返回统计之后的结果。
+ *
+ * @param op 元操作类型;
+ * @param saveKey 元操作后将结果保存到saveKey所在的结构中。
+ * @param desKey 需要进行元操作的类型。
+ * @return 返回saveKey结构上value=1的所有数量值。
+ */
+ public Long bGetOpResult(RedisStringCommands.BitOperation op, String saveKey, String... desKey) {
+ this.bGetOp(op, saveKey, desKey);
+ return this.bGetCount(saveKey);
+ }
+
+ // ===================== Hash/Map =====================
+
+ /**
+ * 获取存储在哈希表中指定字段的值
+ *
+ * @param key
+ * @param field
+ * @return
+ */
+ public Object hGet(String key, String field) {
+ return redisTemplate.opsForHash().get(key, field);
+ }
+
+ /**
+ * 获取所有给定字段的值
+ *
+ * @param key
+ * @return
+ */
+ public Map