**
1,添加或更新有序集合
**
/**
*
* 修改有序集合 key member的值
Redis Zincrby 命令对有序集合中指定成员的分数加上增量 increment
可以通过传递一个负数值 increment ,让分数减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 。
当 key 不存在,或分数不是 key 的成员时, ZINCRBY key increment member 等同于 ZADD key increment member 。
当 key 不是有序集类型时,返回一个错误。
分数值可以是整数值或双精度浮点数。
* @param key
* @param increment
* @param member
*/
protected static Double zincrby(String key, double increment, String member) {
Jedis jedis = null;
try {
jedis = ConnectionManager.getConnection();
return jedis.zincrby(key, increment, member);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
} finally {
try {
ConnectionManager.closeConnection(jedis);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
// TODO Auto-generated catch block
}
}
return null;
}
2,查询有序集合
/**
* 显示有序集 名字 分数 由大到小
*
* @param key
* @return
* @throws Exception
*/
protected static Set<Tuple> rangeWithScores(String key, long start, long end) {
Jedis jedis = null;
try {
jedis = ConnectionManager.getConnection();
return jedis.zrevrangeWithScores(key, start, end);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
} finally {
try {
ConnectionManager.closeConnection(jedis);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
// TODO Auto-generated catch block
}
}
return null;
}
3,查询有序集合总数
/**
* 查询zadd的总数
* @param key
* @return
*/
protected static long ZCARD(String key) {
Jedis jedis = null;
try {
jedis = ConnectionManager.getConnection();
return jedis.zcard(key);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
} finally {
try {
ConnectionManager.closeConnection(jedis);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
// TODO Auto-generated catch block
}
}
return 0;
}
**
4,移除有序集合
**
/**
* 移除 有序集合
*
* @param key
* @param members
* return 0,移除不存在元素,1移除一个元素
*/
protected static long ZREM(String key, String members) {
Jedis jedis = null;
try {
jedis = ConnectionManager.getConnection();
return jedis.zrem(key, members);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
} finally {
try {
ConnectionManager.closeConnection(jedis);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
// TODO Auto-generated catch block
}
}
return 0;
}
5,移除有序集中,指定分数(score)区间内的所有成员
/**
* Redis Zremrangebyscore 命令用于移除有序集中,指定分数(score)区间内的所有成员。
*/
protected static Long zremrangebyscore(String key, double start, double end) {
Jedis jedis = null;
try {
jedis = ConnectionManager.getConnection();
return jedis.zremrangeByScore(key, start, end);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
} finally {
try {
ConnectionManager.closeConnection(jedis);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
// TODO Auto-generated catch block
}
}
return 0L;
}
**
6,获取排名
**
/**
*
* @param key
* @param member
* @return 排名
*/
protected static Long rank(String key, String member) {
Jedis jedis = null;
try {
jedis = ConnectionManager.getConnection();
Long zk = jedis.zrevrank(key, member);
return zk;
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
} finally {
try {
ConnectionManager.closeConnection(jedis);
} catch (Exception e) {
logger.info("redis bug:" + e.getMessage());
logger.info(" kkkredis 关闭jedis异常" + e.getMessage());
}
}
return -1l;
}