5290589 发表于 2018-11-4 14:14:29

redis应用场景(1)一个文字投票网站

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;
  
}


页: [1]
查看完整版本: redis应用场景(1)一个文字投票网站