分布式锁 常规锁 redissonClient.getLock(key); waitTime 锁的等待时间 leaseTime 租约时间 unit 单位 redis会根据设置的锁等待时间等待获取锁 (等待获取锁的方式一般分为两种 轮询和通知,轮询一般会每隔一段时间获取一遍,通知是当锁释放之后告诉等待的锁 不同实现还是有相应的公平锁和非公平锁,公平锁会按线程的等待时间的顺序来分配时,非公平锁则相反谁抢到是谁的,不管等待顺序) 扩展 可以使用缓存+分布式锁合作的方式 通过缓存记录操作时间,并设置过期时间(该时间是不想同一时间触发的时间), 当没获取到时间或者本次时间距离上次时间超过了预设的时间(防止特殊情况即时设置了过期时间依旧没删除缓存),则重置该缓存的时间
计算距离(Geo)
RGeo<Object> key = redissonClient.getGeo("key"); 获取Geo
store.add(entity.getLongitude(), entity.getLatitude(), userCity);设置第一个经纬度位置
key.add(Double.parseDouble(item.getLongitude()), Double.parseDouble(item.getLatitude()), item.getDetailAddress()); 添加第二个经纬度地址
Double distance = key.dist(userCity, item.getDetailAddress(), GeoUnit.KILOMETERS);计算距离
item.setDistance(distance);
- THE END -
最后修改:2025年6月22日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://jiaheming.cn/2025/06/redis%e7%94%a8%e6%b3%95/

共有 0 条评论