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

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

Introduction

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

Prototype

public RedisAtomicInteger(String redisCounter, RedisOperations<String, Integer> template) 

Source Link

Document

Constructs a new RedisAtomicInteger instance.

Usage

From source file:org.shareok.data.redis.server.RepoServerDaoImpl.java

@Override
public RepoServer addServer(RepoServer server) {
    int serverIdCount = -1;

    try {/*from  w ww  . j a v a  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;
    }
}