Hoyi 与Redis的读写(hoyi入门系列文章四)
1.Redis 的 配置
在config里增加redis.properties文件
# 地址
ADDR_ARRAY = 127.0.0.1
# 端口
PORT = 6379
# 是否打开了密码验证.
openAUTH = false
# 权限
AUTH =
# 可用连接实例的最大数目,默认值为8;
MAX_ACTIVE = 2000
# 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
MAX_IDLE = 2000
# Max wait
MAX_WAIT = 300
# 超时
TIMEOUT = 300
# 是否打开Redis的集群.
REDIS_OPEN_CLUSTER = false
这样就表示配置了redis的单机连接。
如果要设置redis的集群,则需要设置REDIS_OPEN_CLUSTER = true 同时设置集群方式REDIS_CLUSTER_TYPE
REDIS_CLUSTER_TYPE=HOYI_REDIS_CLUSTER //表示Hoyi的集群,hoyi的集群指多个单机redis手动同时写入,随机取出一个的方式
REDIS_CLUSTER_TYPE=DEFAULT_REDIS_CLUSTER //表示redis的默认集群
#redis.cluster.addrs=ds1,ds2,ds3
#cluster.ds1.addr=192.168.1.1
#cluster.ds1.port=6379
#cluster.ds2.addr=192.168.1.2
#cluster.ds2.port=6379
#cluster.ds3.addr=192.168.1.3
#cluster.ds3.port=6379
2.使用Redis
2.1 普通缓存
在项目WebRoot 下 创建/demo3/controller/RedisDemo.java,继承Hoyipage.
@RequestMode(MODE={RequestType.GET,RequestType.POST})
public void testRedis(){
RedisObjects _redisObjects = HoyiRedisCtrls.NEWCS().GetRedis();
_redisObjects.set("aa", "bb");
String val = _redisObjects.get("aa");
HoyiRedisCtrls.returnRedisres(_redisObjects);
this.WriteUTF8JSONDATAMSG(1, "存储到aa的值为"+val,"");
}
http://localhost:8085/hoyidemo/demo3/controller/RedisDemo.html?behavior=testRedis,通过redis管理工具,可以看到我们将key为aa,value为bb的值储存到redis。
2.2 方法缓存
我们也可以通过 @RedisCache 注解对方法进行缓存
@RequestMode(MODE={RequestType.GET,RequestType.POST})
@RedisCache(CachKey="testMethodRedis",expiress=1000)
public String testMethodRedis(){
HashMap<String, String> map = new HashMap<String, String>();
map.put("user", "xiaoming");
this.WriteUTF8JSONDATAMSG(1, "success", map);
JsonModel json = new JsonModel(1, "success");
json.setData(map);
return JSONSerializer.toJSON(json, JsonUtil.Config).toString();
}
如果访问过一次http://localhost:8085/hoyidemo/demo3/controller/RedisDemo.html?behavior=testMethodRedis,再次访问则会直接从redis里取出来。注意使用RedisCache 注解,Cachekey的值需要和方法名testMethodRedis一样,同时该需要返回字符串值,并最终会缓存该字符串。
如果带参数,则需要将在注解里加上参数,@RedisCache(CachKey="testMethodRedis",paramkeys={"params1","params2"},expiress=1000),那么不同参数的请求会分别缓存到redis起来。