欢迎来到思维库

思维库

如何优雅地使用Redis之位图操作

时间:2025-11-05 07:28:47 出处:应用开发阅读(143)

如何优雅地使用Redis之位图操作
复制public class UserLoginStatusService {      private static final String host="111.111.111.111";      private static final int port=6379;      private static final Jedis jedis=new Jedis(host,何优port);      //日期的初始值(也可以理解为用户的注册时间),      //下文需要使用日期的源码下载雅地偏移量作为redis位图的offset,      //因此需要将要保存登录状态的网站模板使用日期减去该初始日期。      //这里使用了Java 8的位图新日期API      private static final LocalDate beginDate=LocalDate.of(2018,1,1);      static {          jedis.connect();      }      public void setLoginStatus(String userId, LocalDate date,boolean isLogin){          long offset = getDateDuration(beginDate, date);          jedis.setbit(userId,offset,isLogin);      }      public boolean getLoginStatus(String userId,LocalDate date){          long offset = getDateDuration(beginDate, date);          return jedis.getbit(userId,offset);      }      private long getDateDuration(LocalDate start ,LocalDate end){          return start.until(end, ChronoUnit.DAYS);      }      publicstatic void main(String[] args) {          UserLoginStatusService userLoginStatusService=new UserLoginStatusService();          String userId="user_1";          LocalDate today = LocalDate.now();          userLoginStatusService.setLoginStatus(userId,today,true);          boolean todayLoginStatus = userLoginStatusService.getLoginStatus(userId, today);          System.out.println(String.format("The loginStatus of %s in %s is %s",userId,today,todayLoginStatus));          LocalDate yesterday = LocalDate.now().minusDays(1);          boolean yesterdayLoginStatus = userLoginStatusService.getLoginStatus(userId, yesterday);          System.out.println(String.format("The loginStatus of %s in %s is %s",userId,yesterday,yesterdayLoginStatus));      }  }  1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.站群服务器

分享到:

温馨提示:以上内容和图片整理于网络,仅供参考,希望对您有帮助!如有侵权行为请联系删除!

友情链接: