
复制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.
云服务器