預設
Ubuntu 上 安裝 redis
參見
http://segmentfault.com/a/1190000004109484
概述
jfinal 2.0 中已整合RedisPlugin外掛。
RedisPlugin 是支援 Redis 的極速化外掛。使用 RedisPlugin 可以極度方便的使用 redis,該外掛不僅提供了豐富的 API,而且還同時支援多 redis 服務端。Redis 擁有超高的效能,豐富的資料結構,天然支援資料持久化,是目前應用非常廣泛的 nosql 資料庫。對於 redis 的有效應用可極大提升系統效能,節省硬體成本。
RedisPlugin
RedisPlugin 是作為 JFinal 的 Plugin 而存在的,所以使用時需要在 JFinalConfig 中配置
RedisPlugin,以下是 RedisPlugin 配置示例程式碼:
@Override
public void configPlugin(Plugins plugins){
//快取user模組 到 redis
RedisPlugin userRedis=new RedisPlugin("userCache","172.16.0.102","test123");
plugins.add(userRedis);
}
以上程式碼建立了一個 RedisPlugin 物件userRedis。最先建立的RedisPlugin 物件所持有的 Cache 物件將成為主快取物件,主快取物件可通過 Redis.use()直接獲取,否則需要提供 cacheName 引數才能獲取,例如:Redis.use(“other”)
Redis 與 Cache
Redis 與 Cache 聯合起來可以非常方便地使用 Redis 服務,Redis 物件通過 use()方法來獲取到 Cache 物件,Cache 物件提供了豐富的 API 用於使用 Redis 服務,下面是具體使用示例:
cache賦值
package controller;
import com.jfinal.core.Controller;
import com.jfinal.plugin.redis.Cache;
import com.jfinal.plugin.redis.Redis;
/**
* Created by renpeng on 2015/12/1.
*/
public class IndexController extends Controller {
public void index(){
//獲取redis 快取物件user
Cache userCache= Redis.use("userCache");
//在config中最先建立的cache 可以使用Redis.use() 直接來獲取。示例:
//Cache userCache= Redis.use();
userCache.set("userid_1","admin");
System.out.print("index.jsp: cache set 完成#############################");
renderJsp("index.jsp");
}
}
執行效果:
JFinal action report -------- 2015-12-08 10:37:23 ------------------------------
Controller : controller.IndexController.(IndexController.java:1)
Method : index
Interceptor : interceptor.ExceptionIntoLogInterceptor.(ExceptionIntoLogInterceptor.java:1)
--------------------------------------------------------------------------------
index.jsp: cache set 完成#############################
cache取值
@Before(AuthInterceptor.class)
public void index(){
//System.out.print(getParaToInt()+"=====================");
//setAttr("user", User.me.findById(4));
Cache userCache= Redis.use("userCache");
System.out.print("# user/index: cache get 內容:"+userCache.get("userid_1"));
setAttr("userPage", User.me.paginate(getParaToInt(0, 1), 10));
render("index.html");
}
執行結果:
JFinal action report -------- 2015-12-08 10:38:20 ------------------------------
Controller : controller.UserController.(UserController.java:1)
Method : index
Interceptor : interceptor.ExceptionIntoLogInterceptor.(ExceptionIntoLogInterceptor.java:1)
interceptor.AuthInterceptor.(AuthInterceptor.java:1)
--------------------------------------------------------------------------------
# user/index: cache get 內容:admin
注:通常情況下只會建立一個 RedisPlugin 連線一個 redis 服務端,使用 Redis.use().set(key,value)即可。