List of usage examples for org.springframework.data.redis.support.atomic RedisAtomicInteger incrementAndGet
public int incrementAndGet()
From source file:org.shareok.data.redis.server.RepoServerDaoImpl.java
@Override public RepoServer addServer(RepoServer server) { int serverIdCount = -1; try {//from www .j a va 2 s . c om redisTemplate.setConnectionFactory(connectionFactory); RedisAtomicInteger serverIdIndex = new RedisAtomicInteger( ShareokdataManager.getRedisServerQueryPrefix(), redisTemplate.getConnectionFactory()); serverIdCount = serverIdIndex.incrementAndGet(); final String serverId = String.valueOf(serverIdCount); final String serverName = server.getServerName(); final String portStr = String.valueOf(server.getPort()); final String proxyPortStr = String.valueOf(server.getProxyPort()); final String repoTypeStr = String.valueOf(server.getRepoType()); final String timeoutStr = String.valueOf(server.getTimeout()); final String host = server.getHost(); final String proxyHost = server.getProxyHost(); final String userName = server.getUserName(); final String proxyUserName = server.getProxyUserName(); final String password = server.getPassword(); final String proxyPassword = server.getProxyPassword(); final String passphrase = server.getPassPhrase(); final String rsaKey = server.getRsaKey(); final String address = server.getAddress(); RepoServer existingServer = findServerByName(serverName); if (null != existingServer) { return existingServer; } List<Object> results = redisTemplate.execute(new SessionCallback<List<Object>>() { @Override public List<Object> execute(RedisOperations operations) throws DataAccessException { operations.multi(); operations.boundHashOps("server:" + serverId); operations.opsForHash().put("server:" + serverId, "serverId", serverId); operations.opsForHash().put("server:" + serverId, "serverName", serverName); operations.opsForHash().put("server:" + serverId, "port", portStr); operations.opsForHash().put("server:" + serverId, "proxyPort", proxyPortStr); operations.opsForHash().put("server:" + serverId, "timeout", timeoutStr); operations.opsForHash().put("server:" + serverId, "host", host); operations.opsForHash().put("server:" + serverId, "proxyHost", proxyHost); operations.opsForHash().put("server:" + serverId, "userName", userName); operations.opsForHash().put("server:" + serverId, "proxyUserName", proxyUserName); operations.opsForHash().put("server:" + serverId, "password", password); operations.opsForHash().put("server:" + serverId, "host", host); operations.opsForHash().put("server:" + serverId, "proxyPassword", proxyPassword); operations.opsForHash().put("server:" + serverId, "passphrase", passphrase); operations.opsForHash().put("server:" + serverId, "rsaKey", rsaKey); operations.opsForHash().put("server:" + serverId, "repoType", repoTypeStr); operations.opsForHash().put("server:" + serverId, "address", address); operations.boundHashOps(ShareokdataManager.getRedisServerNameIdMatchingTable()); operations.opsForHash().put(ShareokdataManager.getRedisServerNameIdMatchingTable(), serverName, serverId); List<Object> serverList = operations.exec(); if (!serverList.get(0).equals(true)) { operations.discard(); } return serverList; } }); server.setServerId(serverIdCount); return server; } catch (Exception ex) { logger.error("Cannot create a new server.", ex); return null; } }