RedisTemplate使用

1.Geospatial 地理位置

1.添加                              

//1.key 2.value(经度,纬度)  3.name
        redisTemplate.opsForGeo().add("city",new Point(116.35,23.535),"jieyang");

 2.获取城市(1个或者多个)的经纬度

        System.out.println(redisTemplate.opsForGeo().position("city", "jieyang", "dongguan"));

 

 3.计算两个城市的直线距离

redisTemplate.opsForGeo().distance("city","guangzhou","dongguan",KILOMETERS)

 

 4.附近的城市

 //距离300km
        Distance distance = new Distance(300, Metrics.KILOMETERS);
        //以揭阳这个地点为中心点,附件300km的城市
        GeoResults<RedisGeoCommands.GeoLocation<Object>> radius = redisTemplate.opsForGeo().radius("city", "jieyang", distance);
        for( GeoResult<RedisGeoCommands.GeoLocation<Object>> radiu: radius.getContent()){
            System.out.println(radiu.getContent().getName());
        }
        //以133.11 23.037这个地点为中心点,附件300km的城市
        System.out.println(redisTemplate.opsForGeo().radius("city", new Circle(new Point(113.11, 23.037), distance)));

 

 2.Hyperloglog基数

 1.统计不相同的数的数据,可用于网页浏览量的实现

  //添加的7个数,
        redisTemplate.opsForHyperLogLog().add("myHkey","a","a","b","c","d","e","e");
        //输出不同数的数量
        System.out.println(redisTemplate.opsForHyperLogLog().size("myHkey"));

 3.ZSet 有序集合

 // 添加数据 1.key 2.value 3.index
        redisTemplate.opsForZSet().add("myzset","one",8);
        redisTemplate.opsForZSet().add("myzset","two",12);
        redisTemplate.opsForZSet().add("myzset","three",33);
        redisTemplate.opsForZSet().add("myzset","four",54);
        //按照index从小到大排序  1.key  2.从0开始 3.到-1  相对于输出全部
       System.out.println(redisTemplate.opsForZSet().range("myzset", 0, -1));
       //集合个数
       System.out.println(redisTemplate.opsForZSet().zCard("myzset"));
       //index 0到20 之间的数量
       System.out.println(redisTemplate.opsForZSet().count("myzset", 0, 20));
       //index 0到20之间的value
       System.out.println(redisTemplate.opsForZSet().rangeByScore("myzset", 0, 20));

 

 

 4.Hash

  //添加数据
        redisTemplate.opsForHash().put("myhash","name","cwd");
        redisTemplate.opsForHash().put("myhash","age","18");
        //取出数据
        System.out.println(redisTemplate.opsForHash().entries("myhash"));
        //数量
        System.out.println(redisTemplate.opsForHash().size("myhash"));

 

posted @ 2021-01-28 23:21  熬夜秃头选拨赛冠军  阅读(684)  评论(0编辑  收藏  举报