Chapter 1. Using the RESP endpoint Data Grid Server includes an experimental module that implements the RESP3 protocol . The RESP endpoint allows Redis clients to connect to one or several Data Grid-backed RESP servers and perform cache operations. Important RESP protocol endpoint is available as a technology preview feature. 1.1. Technology Previews Technology Preview features or capabilities are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using Technology Preview features or capabilities for production. These features provide early access to upcoming product features, which enables you to test functionality and provide feedback during the development process. For more information, see Red Hat Technology Preview Features Support Scope . 1.2. Enabling the RESP endpoint Add the resp-connector to Data Grid Server configuration to enable the RESP endpoint. You can enable the RESP endpoint with: Standalone Data Grid Server deployments, exactly like standalone Redis, where each server instance runs independently of each other. Clustered Data Grid Server deployments, where server instances replicate or distribute data between each other. Clustered deployments provides clients with failover capabilities. Prerequisites Install Data Grid Server. Procedure Open your Data Grid Server configuration for editing. Add cache configuration to the cache-container section if required. Cache configuration cannot enable capabilities that violate the RESP protocol. For example, specifying expiration values in a cache for the RESP endpoint results in a fatal error at startup. Tip Configure your cache with Protobuf encoding if you want to view cache entries in the Data Grid Console ( encoding media-type="application/x-protostream" ). Add an endpoint declaration to your configuration. Add the resp-connector element and specify the name of the cache to use with the RESP connector with the cache attribute. You can use only one cache with the RESP endpoint. Declare the security realm to use with the RESP endpoint with the security-realm attribute, if required. Ensure that the endpoint declaration also adds a Hot Rod and REST connector. Save the changes to your configuration. Verification When you start Data Grid Server check for the following log message: You can now connect to the RESP endpoint with a Redis client. For example, with the Redis CLI you can do the following to add an entry to the cache: RESP endpoint configuration XML <endpoints> <endpoint socket-binding="default" security-realm="default"> <resp-connector cache="mycache" /> <hotrod-connector /> <rest-connector/> </endpoint> </endpoints> JSON { "server": { "endpoints": { "endpoint": { "socket-binding": "default", "security-realm": "default", "resp-connector": { "cache": "mycache" }, "hotrod-connector": {}, "rest-connector": {} } } } } YAML server: endpoints: endpoint: socketBinding: "default" securityRealm: "default" respConnector: cache: "mycache" hotrodConnector: ~ restConnector: ~ 1.3. Redis commands The Data Grid RESP endpoint implements the following Redis commands: AUTH DECR DEL ECHO GET HELLO INCR MGET MSET PING PUBLISH QUIT RESET SET SUBSCRIBE UNSUBSCRIBE

Commands:
[org.infinispan.SERVER] ISPN080018: Started connector Resp (internal)
redis-cli -p 11222 --user username --pass password
127.0.0.1:11222> SET k v OK 127.0.0.1:11222> GET k "v" 127.0.0.1:11222> quit
<endpoints> <endpoint socket-binding="default" security-realm="default"> <resp-connector cache="mycache" /> <hotrod-connector /> <rest-connector/> </endpoint> </endpoints>
{ "server": { "endpoints": { "endpoint": { "socket-binding": "default", "security-realm": "default", "resp-connector": { "cache": "mycache" }, "hotrod-connector": {}, "rest-connector": {} } } } }
server: endpoints: endpoint: socketBinding: "default" securityRealm: "default" respConnector: cache: "mycache" hotrodConnector: ~ restConnector: ~