This is an automated email from the ASF dual-hosted git repository.

crazyhzm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 3ca8f38d15 Optimize the cache result document (#2245)
3ca8f38d15 is described below

commit 3ca8f38d15f14fa86dcefbd5e3ee626f05c6f8e9
Author: huazhongming <[email protected]>
AuthorDate: Wed Feb 15 15:48:39 2023 +0800

    Optimize the cache result document (#2245)
---
 .../performance/result-cache.md                    | 96 ++++++++++++++++++++--
 1 file changed, 90 insertions(+), 6 deletions(-)

diff --git 
a/content/zh-cn/docs3-v2/java-sdk/advanced-features-and-usage/performance/result-cache.md
 
b/content/zh-cn/docs3-v2/java-sdk/advanced-features-and-usage/performance/result-cache.md
index 2b12d86420..9f7d1c2edd 100644
--- 
a/content/zh-cn/docs3-v2/java-sdk/advanced-features-and-usage/performance/result-cache.md
+++ 
b/content/zh-cn/docs3-v2/java-sdk/advanced-features-and-usage/performance/result-cache.md
@@ -4,12 +4,20 @@ title: "调用结果缓存"
 linkTitle: "调用结果缓存"
 weight: 7
 description: "通过缓存结果加速访问速度"
+
 ---
+
 ## 功能说明
 
+Dubbo支持了服务端结果缓存和客户端结果缓存。
+
 #### 缓存类型
 
+目前Dubbo3.0版本及高于其的版本都支持以下几种内置的缓存策略:
+
 * `lru` 基于最近最少使用原则删除多余缓存,保持最热的数据被缓存。
+* `lfu`基于淘汰使用频次最低的原则来实现缓存策略。
+* `expiring`基于过期时间原则来实现缓存策略。
 * `threadlocal` 当前线程缓存,比如一个页面渲染,用到很多 portal,每个 portal 
都要去查用户信息,通过线程缓存,可以减少这种多余访问。
 * `jcache` 与 [JSR107](http://jcp.org/en/jsr/detail?id=107%27) 集成,可以桥接各种缓存实现。
 
@@ -19,18 +27,94 @@ description: "通过缓存结果加速访问速度"
 
 ## 使用场景
 
-结果缓存,用于加速热门数据的访问速度,Dubbo 提供声明式缓存,以减少用户加缓存的工作量。 
+结果缓存,用于加速热门数据的访问速度,Dubbo 提供声明式缓存,以减少用户加缓存的工作量。
+
+## 客户端缓存使用方式
 
-## 使用方式
+Dubbo中对RPC调用结果缓存支持接口粒度和方法粒度的配置控制。
+
+**接口粒度**
+
+xml配置方式:
 
 ```xml
-<dubbo:reference interface="com.foo.BarService" cache="lru" />
+<dubbo:reference interface="com.foo.DemoService" cache="lru" />
+```
+
+注解配置方式:
+
+```java
+@DubboReference(cache = "lru")
+private DemoService demoService;
 ```
 
-或:
+**方法粒度**
 
 ```xml
-<dubbo:reference interface="com.foo.BarService">
-    <dubbo:method name="findBar" cache="lru" />
+<dubbo:reference interface="com.foo.DemoService">
+    <dubbo:method name="sayHello" cache="lru" />
 </dubbo:reference>
 ```
+
+注解配置方式:
+
+```java
+@DubboReference(methods = {@Method(name="sayHello",cache = "lru")})
+private DemoService demoService;
+```
+
+## 服务端缓存使用方式
+
+**接口粒度**
+
+xml配置方式:
+
+```xml
+<bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
+<dubbo:service interface="com.foo.DemoService" ref="demoService" cache="lru" />
+```
+
+注解配置方式:
+
+```java
+@DubboService(cache = "lru")
+public class DemoServiceImpl implements DemoService {
+
+    private static final Logger logger = 
LoggerFactory.getLogger(DemoServiceImpl.class);
+    @Override
+    public String sayHello(String name) {
+        logger.info("Hello " + name + ", request from consumer: " + 
RpcContext.getContext().getRemoteAddress());
+        return "Hello " + name;
+
+    }
+
+}
+```
+
+**方法粒度**
+
+```xml
+<bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
+<dubbo:service interface="com.foo.DemoService" ref="demoService" cache="lru" />
+    <dubbo:method name="sayHello" cache="lru" />
+</dubbo:service>
+```
+
+注解配置方式:
+
+```java
+@DubboService(methods = {@Method(name="sayHello",cache = "lru")})
+public class DemoServiceImpl implements DemoService {
+
+    private static final Logger logger = 
LoggerFactory.getLogger(DemoServiceImpl.class);
+    @Override
+    public String sayHello(String name) {
+        logger.info("Hello " + name + ", request from consumer: " + 
RpcContext.getContext().getRemoteAddress());
+        return "Hello " + name;
+
+    }
+
+}
+```
+
+## 
\ No newline at end of file

Reply via email to