Skip to content

Commit c571a8d

Browse files
author
litongjava
committed
add parse redis url
1 parent 1de51c3 commit c571a8d

File tree

1 file changed

+57
-0
lines changed
  • docs/zh/14_jfinal-plugins

1 file changed

+57
-0
lines changed

docs/zh/14_jfinal-plugins/03.md

+57
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,63 @@ public class RedisPluginConfig {
8686
8787
```
8888

89+
### 解析 redis_url
90+
91+
```
92+
REDIS_URL=redis://default:@127.0.0.1:6379
93+
```
94+
95+
```
96+
import com.litongjava.jfinal.aop.annotation.AConfiguration;
97+
import com.litongjava.jfinal.aop.annotation.AInitialization;
98+
import com.litongjava.jfinal.plugin.redis.Cache;
99+
import com.litongjava.jfinal.plugin.redis.Redis;
100+
import com.litongjava.jfinal.plugin.redis.RedisPlugin;
101+
import com.litongjava.tio.boot.server.TioBootServer;
102+
import com.litongjava.tio.utils.dsn.RedisInfo;
103+
import com.litongjava.tio.utils.dsn.RedisUrlParser;
104+
import com.litongjava.tio.utils.environment.EnvironmentUtils;
105+
106+
import lombok.extern.slf4j.Slf4j;
107+
import redis.clients.jedis.Jedis;
108+
109+
@AConfiguration
110+
@Slf4j
111+
public class RedisPluginConfig {
112+
113+
@AInitialization
114+
public void redisPlugin() {
115+
String redisUrl = EnvironmentUtils.get("REDIS_URL");
116+
if (redisUrl == null) {
117+
return;
118+
}
119+
RedisInfo redisInfo = new RedisUrlParser().parse(redisUrl);
120+
int redistimeout = EnvironmentUtils.getInt("redis.timeout", 60);
121+
int redisDatabase = EnvironmentUtils.getInt("redis.database", 0);
122+
String cacheName = EnvironmentUtils.get("redis.cacheName", "main");
123+
124+
// 创建并启动 Redis 插件
125+
RedisPlugin mainRedis = new RedisPlugin(cacheName, redisInfo.getHost(), redisInfo.getPort(), redistimeout,
126+
redisInfo.getPswd(), redisDatabase);
127+
128+
mainRedis.start();
129+
130+
// 测试连接
131+
Cache cache = Redis.use(cacheName);
132+
133+
Jedis jedis = cache.getJedis();
134+
try {
135+
jedis.connect();
136+
log.info("connect redis successful");
137+
} catch (Exception e) {
138+
e.printStackTrace();
139+
}
140+
141+
TioBootServer.me().addDestroyMethod(mainRedis::stop);
142+
}
143+
}
144+
```
145+
89146
### 控制器
90147

91148
`RedisTestController` 包含三个方法,每个方法都演示了如何使用 Redis 进行不同类型的操作。以下是对每个方法的详细解释:

0 commit comments

Comments
 (0)