• 社交网站点击追踪机制


    package redis;

    import redis.clients.jedis.Jedis;

    public class 短连接 {
    // 社交网站点击追踪机制:类似微博,发送连接地址:http://redis.com/index.html->http://t.cn/XSGGA9D
    //
    // 长连接赚成短连接,可以利用短连接进行点击数量追踪,然后再让你进入短连接对应长连接里面去,所以可以利用hash数据结构实现网址点击追踪机制。
    //
    // 可以根据短连接作为key,可以知道有多少人访问了你这个短连接;。
    Jedis jedis = new Jedis("127.0.0.1");

    public 短连接(){
    //将短连接设置特别大
    jedis.set("short_url_seed","39213021");
    }

    private static final String X36="01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    private static final String[] X36_ARRAY="0,1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z".split(",");

    /**
    * 给短连接进行次数增加
    * @param curl
    */
    public void incr(String curl){
    //+1
    jedis.hincrBy("short_url_access_count",curl,1);

    }

    public Long getincr(String curl){
    //+1

    return Long.valueOf(jedis.hget("short_url_access_count",curl));
    }


    /**
    * 获取短连接网址
    * @param url
    * @return
    */
    public String getShortURL(String url){
    Long num = jedis.incr("short_url_seed");
    StringBuffer sb=new StringBuffer();
    while(num>0){
    sb.append(X36_ARRAY[(int)(num%36)]);
    num=num/36;
    }
    String shorUrl = sb.reverse().toString();
    jedis.hset("short_url_access_count",shorUrl,"0");
    //维护长连接对应映射关系
    jedis.hset("url_mapping",shorUrl,url);
    return shorUrl ;
    }

    public static void main(String[] args) {
    短连接 d = new 短连接();
    String shortURL = d.getShortURL("http://redis.com/index.html");
    //对短连接访问
    System.out.println("网页短连接地址为"+shortURL);
    for (int i = 0; i <152 ; i++) {
    d.incr(shortURL);
    }
    Long getincr = d.getincr(shortURL);
    System.out.println("短连接被访问次数"+getincr);

    }


    }
  • 相关阅读:
    react-webpack-express
    React总结和遇到的坑
    vue+node+mongodb实现的功能
    webpack整体了解
    webpack踩坑
    深入了解MongoDB
    实现pdf word在线浏览和下载
    node实现爬虫
    火客声音分析
    抖音二婷衣橱分析
  • 原文地址:https://www.cnblogs.com/q1359720840/p/14587699.html
Copyright © 2020-2023  润新知