Example usage for org.springframework.data.redis.support.atomic RedisAtomicInteger incrementAndGet

List of usage examples for org.springframework.data.redis.support.atomic RedisAtomicInteger incrementAndGet

Introduction

In this page you can find the example usage for org.springframework.data.redis.support.atomic RedisAtomicInteger incrementAndGet.

Prototype

public int incrementAndGet() 

Source Link

Document

Atomically increment by one the current value.

Usage

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;
    }
}