|
private static final int ONE_WEEK_IN_SECONDS = 7 * 86400;
private static final int VOTE_SCORE = 432;
public String postArticle(Jedis conn, String user, String title, String link) {
String articleId = String.valueOf(conn.incr("article:"));
String voted = "voted:" + articleId;
conn.sadd(voted, user);
conn.expire(voted, ONE_WEEK_IN_SECONDS);//一周的有效期
long now = System.currentTimeMillis() / 1000;
String article = "article:" + articleId;
HashMap articleData = new HashMap();
articleData.put("title", title);
articleData.put("link", link);
articleData.put("user", user);
articleData.put("now", String.valueOf(now));
articleData.put("votes", "1");
conn.hmset(article, articleData);
//维护两个排序集合,是为了解决文章排序的两种方式
//如果还有三种排序方式,对不起,还需要另外维护一个排序集合
conn.zadd("score:", now + VOTE_SCORE, article);//维护文章的评分信息
conn.zadd("time:", now, article);//维护文章的发布时间信息
return articleId;
}
|
|
|