The release of VMware Tanzu GemFire 9.15 introduces compatibility with the VMware Tanzu GemFire for Redis Apps add-on. This add-on enables compatibility between Redis applications and Tanzu GemFire for the first time ever, unlocking enterprise-ready features for your Redis applications.
What is VMware Tanzu GemFire?
VMware Tanzu GemFire is an enterprise-grade, high-speed, in-memory data and compute grid intended to support a wide variety of use cases. From high-performance, low-latency applications where data must be processed with sub-millisecond delivery times to caching and key-value stores. Tanzu GemFire keeps data consistent, secure, and up to date, delivering excellent performance with unlimited scale, across multiple data centers, both on-premises or in the cloud.
What is Tanzu GemFire for Redis Apps?
VMware Tanzu GemFire for Redis Apps is an add-on for VMware Tanzu GemFire that allows applications currently using a Redis client to connect to and send Redis commands to GemFire. This allows applications to use GemFire as a datastore for Redis clients, with little to no code changes.
What is the importance of Tanzu GemFire for Redis Apps for open source Redis users?
Tanzu GemFire is backed by decades of experience of working with enterprise companies that run mission-critical applications. Tanzu GemFire for Redis Apps allows enterprise customers, using open source software (OSS) Redis and looking for enterprise-ready features out of the box, to switch to Tanzu GemFire while continuing to use their applications utilizing Redis. “Enterprise-ready features” essentially includes:
- High-availability
- Disaster recovery and data persistence
- Scalability
- Security
- Consistent replication
- Integration monitoring
- Multi-site and geographic replication
What does GemFire for Redis Apps include?
The initial launch of Tanzu GemFire for Redis Apps add-on includes:
- More than 130 Redis commands. This includes Redis commands for strings, hashes, lists, sets, sorted sets, and publish/subscribe. For a complete list of compatible commands please refer to the documentation.
- Compatibility with any Redis client that supports the OSS Redis Cluster commands. This includes Spring, Java (Jedis, Lettuce, Redisson), C#/.Net, GO, Python, and Node.js.
- Support for RESP2 protocol.
- Automated cluster slot distribution and balancing.
- Customizable security that is compatible with the Redis AUTH command.
- Support for Transport Layer Security.
- Strong data consistency that takes advantage of GemFire’s synchronous data replication. Therefore, when a client application accesses data, it receives the most recent successful write (as opposed to Redis’s asynchronous replication, where the data obtained could be not up-to-date).
- End-to-end multi-threading which allows users to effectively utilize computing resources.
How can I get started with Tanzu GemFire for Redis Apps?
Here is a quick-start example which requires that you have VMware Tanzu GemFire 9.15 (or later) installed along with the Redis command-line interface (redis-cli).
Prerequisites
- VMware Tanzu GemFire for Redis Apps v1.0 from VMware Tanzu Network
- VMware Tanzu GemFire 9.15+ from Tanzu Network (install according to the Tanzu GemFire documentation)
- Redis-cli included in the Redis download
Steps
- Confirm that you have Tanzu GemFire 9.15 installed by opening a terminal and running the command:
gfsh version
The output should be text that reads “
9.15.0
” or later. If it is not, please make sure that you have downloaded and installed Tanzu GemFire 9.15 (or later) according to the installation directions. - Download Tanzu GemFire for Redis Apps (the .tgz file) from Tanzu Network.
- Unzip the contents of the .tgz file.
- In a terminal, start the GemFire CLI/Shell (GFSH) with the command:
gfsh
You should see the following output:
Use the GFSH CLI to enter the following commands: - With GFSH running, start a locator in the terminal. Locators are used to tell the new connecting members where running members are located, and provide load balancing for server use. Learn more here.
start locator
- After the locator has started, start a server with the path to the add-on folder and any additional parameters that need to be set.
start server --name=redisServer1 --locators=localhost[10334] --server-port=40404 --classpath=/path/to/gemfire-for-redis-apps/folder/lib/* --J=-Dgemfire-for-redis-port=6379 --J=-Dgemfire-for-redis-enabled=true
- Add an additional server/node, run the start server command and change the
--name
,--server-port
, and--J=-Dgemfire-for-redis-port=
parameters. For example:start server --name=redisServer2 --locators=localhost[10334] --server-port=40405 --classpath=/path/to/gemfire-for-redis-apps/folder/lib/* --J=-Dgemfire-for-redis-port=6380 --J=-Dgemfire-for-redis-enabled=true
Your GemFire cluster should now be up and running (one locator and two servers) and ready to connect with a Redis client. Keep the terminal with GFSH open and running so that the GemFire cluster can be easily shut down when done.
- To confirm that things are running correctly, start the redis-cli in cluster mode in a separate terminal and identify the port of one of the GemFire for Redis Apps servers started above.
redis-cli –c –p 6379
- Once connected, run the PING command and you should receive a response of PONG.
That’s it! You now have a GemFire cluster that can connect with your applications using Redis.
Additional Resources
Interested in connecting your Spring Data Redis application to Tanzu GemFire for Redis Apps? Check out how to build a Spring Data Redis App with Tanzu GemFire for Redis Apps add-on. For answers to more commonly asked questions on GemFire for Redis Apps, check out our list of frequently asked questions. To learn more about what’s new in the GemFire 9.15 release, check out the latest GemFire 9.15 release blog or its documentation.