Redis 协议

功能描述

基于 Redis 实现的 RPC 协议。支持 2.3.0 及以上版本。

Redis 是一款高效的 KV 存储服务器。

使用场景

缓存、限流、分布式锁等。

如何使用

导入依赖

从 Dubbo 3 开始,Redis 协议不再嵌入到 Dubbo 中,需要单独引入一个独立的 模块

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

注册 redis 服务的地址

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"));

客户端引用

不需要知道 Redis 地址

客户端使用

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

或者点对点直连

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

也可以使用自定义接口

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

其中“p:xxx”是 spring 的标准 p 标签

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

建议方法名与 redis 的标准方法名相同,即:get(key)、set(key, value)、delete(key)。

如果方法名与 redis 的标准方法名不同,则需要配置映射关系


上次修改时间:2023 年 2 月 22 日:合并重构网站 (#2293) (4517e8c1c9c)