@Override
    public RegisteredService save(final RegisteredService rs) {
        try {
            rs.assignIdIfNecessary();
            LOGGER.trace("Saving registered service [{}]", rs);
            val redisKey = getRegisteredServiceRedisKey(rs);
            val clientInfo = ClientInfoHolder.getClientInfo();
            invokeServiceRegistryListenerPreSave(rs);
            template.boundValueOps(redisKey).set(rs);
            LOGGER.trace("Saved registered service [{}]", rs);
            publishEvent(new CasRegisteredServiceSavedEvent(this, rs, clientInfo));
        } catch (final Exception e) {
            LoggingUtils.error(LOGGER, e);
        }
        return rs;
    }
Implementation of the service registry interface which stores the services in a redis instance.

@author Misagh Moayyed
@since 5.2.0
support/cas-server-support-redis-service-registry/src/main/java/org/apereo/cas/adaptors/redis/services/RedisServiceRegistry.java