package com.extjfinal.component.redis;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.util.SafeEncoder;
import com.jfinal.log.Log;
import com.sycloud.rptctl.component.util.Config;
import com.sycloud.rptctl.component.util.StrUtils;
import com.sycloud.rptctl.component.util.serializable.SerializerManage;
/**
* redis客户端
*
* 2016年5月10日 下午2:34:30 flyfox 330627517@qq.com
*/
public class JedisClient {
private static Log logger = Log.getLog(JedisClient.class);
private static JedisClient instance = null;
public static JedisClient getInstance() {
if (instance == null) {
synchronized (JedisClient.class) {
if (instance == null) {
String password = Config.getStr("redis.password");
password = StrUtils.isEmpty(password) ? null : password;
instance = new JedisClient(Config.getStr("redis.host"), Config.getToInt("redis.port"),
Config.getToInt("redis.maxIdel"), Config.getToInt("redis.maxWait"),
Config.getToInt("redis.poolTimeWait"), password);
}
}
}
return instance;
}
public static void resetInstance() {
instance = null;
}
private JedisPoolConfig config;
private JedisPool pool;
private JedisClient(String host, int port, int maxIdel, int maxWait, int poolTimeWait, String password) {
config = new JedisPoolConfig();
config.setMaxIdle(maxIdel);
config.setMaxWaitMillis(maxWait);
if (null == password)
pool = new JedisPool(config, host, port, poolTimeWait);
else {
pool = new JedisPool(config, host, port, poolTimeWait, password);
}
}
public Long expire(String key, int seconds) {
try (Jedis jedis = pool.getResource()) {
return jedis.expire(key, seconds);
}
}
public Long ttl(String key) {
try (Jedis jedis = pool.getResource()) {
return jedis.ttl(key);
}
}
public byte[] get(byte[] key) {
try (Jedis jedis = pool.getResource()) {
return jedis.get(key);
}
}
public void set(byte[] key, byte[] val) {
try (Jedis jedis = pool.getResource()) {
jedis.set(key, val);
}
}
public void set(byte[] key, int seconds, byte[] val) {
try (Jedis jedis = pool.getResource()) {
jedis.setex(key, seconds, val);
}
}
public String get(String key) {
try (Jedis jedis = pool.getResource()) {
return jedis.get(key);
}
}
public void set(String key, String val) {
try (Jedis jedis = pool.getResource()) {
jedis.set(key, val);
}
}
public void set(String key, int seconds, String val) {
try (Jedis jedis = pool.getResource()) {
jedis.setex(key, seconds, val);
}
}
public boolean setnx(String key) {
try (Jedis jedis = pool.getResource()) {
return jedis.setnx(key, "setnx") == 1;
}
}
public long setnx(String key, String val) {
try (Jedis jedis = pool.getResource()) {
return jedis.setnx(key, val);
}
}
public Long incr(String key) {
try (Jedis jedis = pool.getResource()) {
return jedis.incr(key);
}
}
public Long incrBy(String key, long value) {
try (Jedis jedis = pool.getResource()) {
return jedis.incrBy(key, value);
}
}
public Long decr(String key) {
try (Jedis jedis = pool.getResource()) {
return jedis.decr(key);
}
}
public Long decrBy(String key, long value) {
try (Jedis jedis = pool.getResource()) {
return jedis.decrBy(key, value);
}
}
public void append(String key, String str) {
try (Jedis jedis = pool.getResource()) {
jedis.append(key, str);
}
}
public String setObj(String key, Object data) {
byte[] vals = null;
try {
vals = SerializerManage.serialize(data);
} catch (Exception e) {
logger.error("SerializerManage error", e);
return null;
}
if (vals == null) {
return null;
}
try (Jedis jedis = pool.getResource()) {
return jedis.set(SafeEncoder.encode(key), vals);
}
}
public String setObj(String key, int seconds, Object data) {
byte[] vals = null;
try {
vals = SerializerManage.serialize(data);
} catch (Exception e) {
logger.error("SerializerManage error", e);
return null;
}
if (vals == null) {
return null;
}
try (Jedis jedis = pool.getResource()) {
return jedis.setex(SafeEncoder.encode(key), seconds, vals);
}
}
@SuppressWarnings("unchecked")
public <T> T getObj(String key) {
byte[] vals = null;
try (Jedis jedis = pool.getResource()) {
vals = jedis.get(SafeEncoder.encode(key));
}
if (vals == null) {
return null;
}
try {
return (T) SerializerManage.deserialize(vals);
} catch (Exception e) {
logger.error("SerializerManage error", e);
return null;
}
}
/**
* 移除给定的key
*
* @param key
*/
public void del(String key) {
try (Jedis jedis = pool.getResource()) {
jedis.del(key);
}
}
/**
* 移除给定的key
*
* @param key
*/
public void del(byte[] key) {
try (Jedis jedis = pool.getResource()) {
jedis.del(key);
}
}
public void flushAll() {
try (Jedis jedis = pool.getResource()) {
jedis.flushAll();
}
}
public long dbSize() {
try (Jedis jedis = pool.getResource()) {
return jedis.dbSize();
}
}
/**
* 移除给定key的生存时间 将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )
*
* @param key
*/
public void persist(String key) {
try (Jedis jedis = pool.getResource()) {
jedis.persist(key);
}
}
/**
* 批量将值插入sorted sets中,如果member对应的value不存在,则初始化,否则更新此member对应value
*
* @param key
* jedis中key
* @param scoreMembers
* 添加(修改的)sets , key:score,value:member
*/
public void zadd(String key, Map<String, Double> scoreMembers, int validSecond) {
try (Jedis jedis = pool.getResource()) {
jedis.zadd(key, scoreMembers);
jedis.expire(key, validSecond);
// jedis.zremrangeByRank(key, rankSize, -1);
// jedis.ltrim(key, 0, rankSize);
}
}
public void zremrangeByRank(String key, int limit) {
try (Jedis jedis = pool.getResource()) {
jedis.zremrangeByRank(key, 0, -limit - 1);
}
}
/**
* 将一个或多个member元素及其score值加入到有序集key当中。
* 如果某个member已经是有序集的成员,那么更新这个member的score值
* ,并通过重新插入这个member元素,来保证该member在正确的位置上。 score值可以是整数值或双精度浮点数。
* 如果key不存在,则创建一个空的有序集并执行ZADD操作。 当key存在但不是有序集类型时,返回一个错误。
*
* @param key
* jedis中对应的key
* @param score
* 分数,double
* @param member
* 当前分数对应的对象
*/
public void zadd(String key, double score, String member, int validSecond) {
try (Jedis jedis = pool.getResource()) {
jedis.zadd(key, score, member);
jedis.expire(key, validSecond);
}
}
/**
* 将一个或多个member元素及其score值加入到有序集key当中。
* 如果某个member已经是有序集的成员,那么更新这个member的score值
* ,并通过重新插入这个member元素,来保证该member在正确的位置上。 score值可以是整数值或双精度浮点数。
* 如果key不存在,则创建一个空的有序集并执行ZADD操作。 当key存在但不是有序集类型时,返回一个错误。
*
* @param key
* jedis中对应的key
* @param score
* 分数,double
* @param member
* 当前分数对应的对象
*/
public void zadd(String key, double score, String member) {
try (Jedis jedis = pool.getResource()) {
jedis.zadd(key, score, member);
}
}
/**
* 返回升序排名的用户名和分数的集合,即分数从最低到最高的排列,分数相等的两个member根据字典排序顺序返回。
没有合适的资源?快使用搜索试试~ 我知道了~
定时跑批报表项目(ssm架构)
共1001个文件
class:180个
java:166个
js:96个
1星 需积分: 50 13 下载量 99 浏览量
2018-04-23
16:55:36
上传
评论 2
收藏 35.33MB ZIP 举报
温馨提示
基于ssm项目开发的定时跑批报表项目,开启关闭可视化操作,具体操作日志,定时执行时间状态结果及日志 基于ssm项目开发的定时跑批报表项目,开启关闭可视化操作,具体操作日志,定时执行时间状态结果及日志
资源推荐
资源详情
资源评论
收起资源包目录
定时跑批报表项目(ssm架构) (1001个子文件)
menu.html.bak 1KB
JedisClient.class 22KB
CnToSpell.class 13KB
IpassCardCtl.class 10KB
BaseJob.class 9KB
HandlerUtils.class 9KB
RptTrainCtl.class 8KB
HttpKit.class 8KB
ModelKit.class 8KB
MusicInfo.class 8KB
Md5Utils.class 8KB
JobFactoryServiceImpl.class 7KB
BaseController.class 7KB
AdminController.class 7KB
BaseModel.class 7KB
QuartzJobclassController.class 7KB
BaseProjectController.class 7KB
ClassSearcher.class 7KB
JflyfoxConfig.class 7KB
UserController.class 7KB
GetParamUtil.class 7KB
AutoBindRoutes.class 6KB
DateUtils.class 6KB
BeanUtils.class 6KB
RoleController.class 6KB
SyHttpUtils.class 6KB
QuartzJobController.class 6KB
QuartzJobClassSvc.class 6KB
IdCheck.class 6KB
AutoBindModels.class 6KB
DepartmentController.class 6KB
DictController.class 6KB
MenuController.class 6KB
StrUtils.class 6KB
OrderCtl.class 6KB
Config.class 6KB
UserSvc.class 6KB
RpthealchkCtl.class 5KB
Base64.class 5KB
RptDailyCtl.class 5KB
DictCache.class 5KB
SysLog.class 5KB
SysDepartment.class 5KB
RptHospitalinfoCtl.class 5KB
RptDailyEmailCtl.class 4KB
OauthOsc.class 4KB
Tuple.class 4KB
ImageCode.class 4KB
HttpClientUtils.class 4KB
BeeltFunctions.class 4KB
OauthQQ.class 4KB
OauthSina.class 4KB
DepartmentSvc.class 4KB
SQLUtils.class 4KB
RptHospitalinfoDao.class 4KB
MemorySerializeCache.class 4KB
QuartzJobController$1.class 4KB
LogController.class 4KB
RptHisDailyCtl.class 4KB
ReflectionUtils.class 4KB
RptResult.class 4KB
PersonController.class 4KB
OauthDouban.class 4KB
OauthGithub.class 4KB
BaseProjectModel.class 4KB
OauthBaidu.class 3KB
OauthRenren.class 3KB
RSAUtils.class 3KB
FileUtils.class 3KB
RptDailyCsCtl.class 3KB
RandomStrUtils.class 3KB
EmailUtil.class 3KB
BaseConfig.class 3KB
DES3Utils.class 3KB
UserInterceptor.class 3KB
ImageUtils.class 3KB
DnycCtl.class 3KB
SimpleRptDispatcher.class 3KB
RedisCache.class 3KB
JFlyFoxUtils.class 3KB
RoleSvc.class 3KB
MemoryCache.class 3KB
HttpRequestDeviceUtils.class 3KB
TimeUtil.class 3KB
DictSvc.class 3KB
MenuSvc.class 3KB
UserCache.class 3KB
DESUtils.class 3KB
RptcheckCountDao.class 2KB
jobLogController.class 2KB
BeetlStrUtils.class 2KB
FiveTuple.class 2KB
ValidUtils.class 2KB
IocInterceptor.class 2KB
Oauth.class 2KB
DemoCtl.class 2KB
CacheManager.class 2KB
SerializerManage.class 2KB
RptHealthcheckDao.class 2KB
FourTuple.class 2KB
共 1001 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
- 「已注销」2019-01-22请问有详细的配置和说明文档吗,求分享!!wangliang08172019-02-11https://download.csdn.net/download/sinat_36716743/10952496
wangliang0817
- 粉丝: 9
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功