Redis protocol

Feature description

RPC protocol implemented based on Redis. 2.3.0 and above are supported.

Redis is an efficient KV storage server.

scenes to be used

Caching, current limiting, distributed locks, etc.

How to use

Import dependencies

Starting from Dubbo 3, the Redis protocol is no longer embedded in Dubbo, and an independent module needs to be introduced separately.

<dependency>
    <groupId>org.apache.dubbo.extensions</groupId>
    <artifactId>dubbo-rpc-redis</artifactId>
    <version>1.0.0</version>
</dependency>

Register the address of the redis service

RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();
Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://10.20.153.10:2181"));
registry.register(URL.valueOf("redis://10.20.153.11/com.foo.BarService?category=providers&dynamic=false&application=foo&group=member&loadbalance=consistenthash"));

Referenced on the client side

Does not need to be aware of Redis addresses

On the client side use:

<dubbo:reference id="store" interface="java.util.Map" group="member" />

Or point-to-point direct connection:

<dubbo:reference id="store" interface="java.util.Map" url="redis://10.20.153.10:6379" />

It is also possible to use a custom interface:

<dubbo:reference id="store" interface="com.foo.StoreService" url="redis://10.20.153.10:6379" />

Where “p:xxx” is the standard p tag of spring

<dubbo:reference id="cache" interface="com.foo.CacheService" url="redis://10.20.153.10:6379" p:set="putFoo" p:get="getFoo" p:delete=" removeFoo" />

The method name is suggested to be the same as the standard method name of redis, namely: get(key), set(key, value), delete(key).

If the method name is different from the standard method name of redis, you need to configure the mapping relationship:

Last modified February 22, 2023: Merge refactor website (#2293) (4517e8c1c9c)