private void save(List<String> list) { String[] array = list.toArray(new String[list.size()]); String addressList = String.join(",", array); redisTemplate.opsForValue().set(REDIS_PREFIX, addressList); }
private List<String> list() { String addressList = redisTemplate.opsForValue().get(REDIS_PREFIX); if (addressList == null) { return null; } return new ArrayList<>(Arrays.asList(addressList.split(","))); }
@Override public Short transactionState(String groupId) { String state = redisTemplate.opsForValue().get(REDIS_GROUP_STATE + groupId); if (Objects.isNull(state)) { return -1; } try { return Short.valueOf(state); } catch (Exception e) { return 0; } } }
@Override public void saveRouteInfo(LoginReqVO loginReqVO, String msg) throws Exception { String key = ROUTE_PREFIX + loginReqVO.getUserId(); redisTemplate.opsForValue().set(key, msg); }
private void parseServerInfo(Map<Long, CIMServerResVO> routes, String key) { long userId = Long.valueOf(key.split(":")[1]); String value = redisTemplate.opsForValue().get(key); String[] server = value.split(":"); CIMServerResVO cimServerResVO = new CIMServerResVO(server[0], Integer.parseInt(server[1]), Integer.parseInt(server[2])); routes.put(userId, cimServerResVO); }
@Override public CIMUserInfo loadUserInfoByUserId(Long userId) { //优先从本地缓存获取 CIMUserInfo cimUserInfo = USER_INFO_MAP.get(userId); if (cimUserInfo != null){ return cimUserInfo ; } //load redis String sendUserName = redisTemplate.opsForValue().get(ACCOUNT_PREFIX + userId); if (sendUserName != null){ cimUserInfo = new CIMUserInfo(userId,sendUserName) ; USER_INFO_MAP.put(userId,cimUserInfo) ; } return cimUserInfo; }
@Override public CIMServerResVO loadRouteRelatedByUserId(Long userId) { String value = redisTemplate.opsForValue().get(ROUTE_PREFIX + userId); if (value == null){ throw new CIMException(OFF_LINE) ; } String[] server = value.split(":"); CIMServerResVO cimServerResVO = new CIMServerResVO(server[0], Integer.parseInt(server[1]), Integer.parseInt(server[2])); return cimServerResVO; }
@Override public void setTransactionState(String groupId, int state) { redisTemplate.opsForValue().set(REDIS_GROUP_STATE + groupId, String.valueOf(state)); redisTemplate.expire(REDIS_GROUP_STATE + groupId, managerConfig.getDtxTime() + 10000, TimeUnit.MILLISECONDS); }
@Override public RegisterInfoResVO register(RegisterInfoResVO info) { String key = ACCOUNT_PREFIX + info.getUserId(); String name = redisTemplate.opsForValue().get(info.getUserName()); if (null == name) { //为了方便查询,冗余一份 redisTemplate.opsForValue().set(key, info.getUserName()); redisTemplate.opsForValue().set(info.getUserName(), key); } else { long userId = Long.parseLong(name.split(":")[1]); info.setUserId(userId); info.setUserName(info.getUserName()); } return info; }
@Override public StatusEnum login(LoginReqVO loginReqVO) throws Exception { //再去Redis里查询 String key = ACCOUNT_PREFIX + loginReqVO.getUserId(); String userName = redisTemplate.opsForValue().get(key); if (null == userName) { return StatusEnum.ACCOUNT_NOT_MATCH; } if (!userName.equals(loginReqVO.getUserName())) { return StatusEnum.ACCOUNT_NOT_MATCH; } //登录成功,保存登录状态 boolean status = userInfoCacheService.saveAndCheckUserLoginStatus(loginReqVO.getUserId()); if (status == false){ //重复登录 return StatusEnum.REPEAT_LOGIN ; } return StatusEnum.SUCCESS; }
/** * 保存用户验证码,和randomStr绑定 * * @param randomStr 客户端生成 * @param imageCode 验证码信息 */ @Override public void saveImageCode(String randomStr, String imageCode) { redisTemplate.opsForValue().set(SecurityConstants.DEFAULT_CODE_KEY + randomStr, imageCode, SecurityConstants.DEFAULT_IMAGE_EXPIRE, TimeUnit.SECONDS); }
@Override public OAuth2AccessToken readAccessToken(String tokenValue) { return (OAuth2AccessToken) this.redisTemplate.opsForValue().get(ACCESS + tokenValue); }
@Override public Person findPerson(String id) { return (Person) redisTemplate.opsForValue().get(id); }
@Override public OAuth2Authentication readAuthentication(String token) { return (OAuth2Authentication) this.redisTemplate.opsForValue().get(AUTH + token); }
@Override public OAuth2RefreshToken readRefreshToken(String tokenValue) { return (OAuth2RefreshToken) this.redisTemplate.opsForValue().get(REFRESH + tokenValue); }
@Override public boolean savePerson(Person person) { redisTemplate.opsForValue().set(person.getId(), person); // return repository.putIfAbsent(person.getId(), person) == null; return true; }
private void removeAccessTokenUsingRefreshToken(String refreshToken) { String token = (String) this.redisTemplate.opsForValue().get(REFRESH_TO_ACCESS + refreshToken); if (token != null) { redisTemplate.delete(ACCESS + token); } }
@Override public void storeRefreshToken(OAuth2RefreshToken refreshToken, OAuth2Authentication authentication) { this.redisTemplate.opsForValue().set(REFRESH + refreshToken.getValue(), refreshToken); this.redisTemplate.opsForValue().set(REFRESH_AUTH + refreshToken.getValue(), authentication); }
@Override public void run(String... args) throws Exception { stringRedisTemplate.opsForValue().set("count", "1"); System.out.println(stringRedisTemplate.opsForValue().get("count")); User user = User.builder().username("javahongxi").nickname("hongxi").build(); redisTemplate.opsForValue().set("user3", user); User user1 = (User) redisTemplate.opsForValue().get("user3"); System.out.println(user1.getUsername()); } }
@Override public OAuth2AccessToken getAccessToken(OAuth2Authentication authentication) { String key = authenticationKeyGenerator.extractKey(authentication); OAuth2AccessToken accessToken = (OAuth2AccessToken) redisTemplate.opsForValue().get(AUTH_TO_ACCESS + key); if (accessToken != null && !key.equals(authenticationKeyGenerator.extractKey(readAuthentication(accessToken.getValue())))) { storeAccessToken(accessToken, authentication); } return accessToken; }