
Redis将BitMap的所有操作都封装到字符串String中,因此spring-data-Redis使用opsForValue,操作BitMap。
- 实现用户每日签到
java
/**
* 完成用户每日签到。
*
* 作用:
* 1.获取当前登录用户;
* 2.获取日期;
* 3.拼接key;
* 4.获取今天是本月的第几天;
* 5.写入RedisSETBITkey;
*
* @return处理结果
*/
@Override
public Result sign(){
//1.获取当前登录用户
Long userId = UserHolder.getUser().getId();
//2.获取日期
LocalDateTime now=LocalDateTime.now();
//3.拼接key
String keySuffix = now.format(DateTimeFormatter.ofPattern(":yyyyMM"));
String key=USER_SIGN_KEY+userId+keySuffix;
//4.获取今天是本月的第几天
int dayOfMonth = now.getDayOfMonth();
//5.写入Redis SETBIT key
stringRedisTemplate.opsForValue().setBit(key,dayOfMonth-1,true);
return Result.ok();
}- 测试功能:
