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)