package com.rookiewzw.myo2o.cache;
import java.util.List;
import java.util.Map;
import java.util.Set;
import redis.clients.jedis.BinaryClient.LIST_POSITION;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.SortingParams;
import redis.clients.util.SafeEncoder;
public class JedisUtil {
/**
* 缓存生存时间
*/
private final int expire = 60000;
/** 操作Key的方法 */
public Keys KEYS;
/** 对存储结构为String类型的操作 */
public Strings STRINGS;
/** 对存储结构为List类型的操作 */
public Lists LISTS;
/** 对存储结构为Set类型的操作 */
public Sets SETS;
/** 对存储结构为HashMap类型的操作 */
public Hash HASH;
private JedisPool jedisPool;
public JedisPool getJedisPool() {
return jedisPool;
}
public void setJedisPool(JedisPoolWriper jedisPoolWriper) {
this.jedisPool = jedisPoolWriper.getJedisPool();
}
public JedisPool getPool() {
return jedisPool;
}
/**
* 从jedis连接池中获取获取jedis对象
*
* @return
*/
public Jedis getJedis() {
return jedisPool.getResource();
}
/**
* 设置过期时间
*
* @author ruan 2013-4-11
* @param key
* @param seconds
*/
public void expire(String key, int seconds) {
if (seconds <= 0) {
return;
}
Jedis jedis = getJedis();
jedis.expire(key, seconds);
jedis.close();
}
/**
* 设置默认过期时间
*
* @author ruan 2013-4-11
* @param key
*/
public void expire(String key) {
expire(key, expire);
}
// *******************************************Keys*******************************************//
public class Keys {
/**
* 清空所有key
*/
public String flushAll() {
Jedis jedis = getJedis();
String stata = jedis.flushAll();
jedis.close();
return stata;
}
/**
* 更改key
*
* @param String
* oldkey
* @param String
* newkey
* @return 状态码
* */
public String rename(String oldkey, String newkey) {
return rename(SafeEncoder.encode(oldkey),
SafeEncoder.encode(newkey));
}
/**
* 更改key,仅当新key不存在时才执行
*
* @param String
* oldkey
* @param String
* newkey
* @return 状态码
* */
public long renamenx(String oldkey, String newkey) {
Jedis jedis = getJedis();
long status = jedis.renamenx(oldkey, newkey);
jedis.close();
return status;
}
/**
* 更改key
*
* @param String
* oldkey
* @param String
* newkey
* @return 状态码
* */
public String rename(byte[] oldkey, byte[] newkey) {
Jedis jedis = getJedis();
String status = jedis.rename(oldkey, newkey);
jedis.close();
return status;
}
/**
* 设置key的过期时间,以秒为单位
*
* @param String
* key
* @param 时间
* ,已秒为单位
* @return 影响的记录数
* */
public long expired(String key, int seconds) {
Jedis jedis = getJedis();
long count = jedis.expire(key, seconds);
jedis.close();
return count;
}
/**
* 设置key的过期时间,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00,格里高利历)的偏移量。
*
* @param String
* key
* @param 时间
* ,已秒为单位
* @return 影响的记录数
* */
public long expireAt(String key, long timestamp) {
Jedis jedis = getJedis();
long count = jedis.expireAt(key, timestamp);
jedis.close();
return count;
}
/**
* 查询key的过期时间
*
* @param String
* key
* @return 以秒为单位的时间表示
* */
public long ttl(String key) {
// ShardedJedis sjedis = getShardedJedis();
Jedis sjedis = getJedis();
long len = sjedis.ttl(key);
sjedis.close();
return len;
}
/**
* 取消对key过期时间的设置
*
* @param key
* @return 影响的记录数
* */
public long persist(String key) {
Jedis jedis = getJedis();
long count = jedis.persist(key);
jedis.close();
return count;
}
/**
* 删除keys对应的记录,可以是多个key
*
* @param String
* ... keys
* @return 删除的记录数
* */
public long del(String... keys) {
Jedis jedis = getJedis();
long count = jedis.del(keys);
jedis.close();
return count;
}
/**
* 删除keys对应的记录,可以是多个key
*
* @param String
* ... keys
* @return 删除的记录数
* */
public long del(byte[]... keys) {
Jedis jedis = getJedis();
long count = jedis.del(keys);
jedis.close();
return count;
}
/**
* 判断key是否存在
*
* @param String
* key
* @return boolean
* */
public boolean exists(String key) {
// ShardedJedis sjedis = getShardedJedis();
Jedis sjedis = getJedis();
boolean exis = sjedis.exists(key);
sjedis.close();
return exis;
}
/**
* 对List,Set,SortSet进行排序,如果集合数据较大应避免使用这个方法
*
* @param String
* key
* @return List<String> 集合的全部记录
* **/
public List<String> sort(String key) {
// ShardedJedis sjedis = getShardedJedis();
Jedis sjedis = getJedis();
List<String> list = sjedis.sort(key);
sjedis.close();
return list;
}
/**
* 对List,Set,SortSet进行排序或limit
*
* @param String
* key
* @param SortingParams
* parame 定义排序类型或limit的起止位置.
* @return List<String> 全部或部分记录
* **/
public List<String> sort(String key, SortingParams parame) {
// ShardedJedis sjedis = getShardedJedis();
Jedis sjedis = getJedis();
List<String> list = sjedis.sort(key, parame);
sjedis.close();
return list;
}
/**
* 返回指定key存储的类型
*
* @param String
* key
* @return String string|list|set|zset|hash
* **/
public String type(String key) {
// ShardedJedis sjedis = getShardedJedis();
Jedis sjedis = getJedis();
String type = sjedis.type(key);
sjedis.close();
return type;
}
/**
* 查找所有匹配给定的模式的键
*
* @param String
* key的表达式,*表示多个,?表示一个
* */
public Set<String> keys(String pattern) {
Jedis jedis = getJedis();
Set<String> set = jedis.keys(pattern);
jedis.close();
return set;
}
}
// *******************************************Sets*******************************************//
public class Sets {
/**
* 向Set添加一条记录,如果member已存在返回0,否则返回1
*
* @param String
* key
* @param String
* member
* @return 操作码,0或1
* */
public long sadd(String key, String member) {
Jedis jedis = getJedis();
long s = jedis.sadd(key, member);
jedis.close();
return s;
}
public long sadd(byte[] key, byte[] member) {
Jedis jedis = getJedis();
long s = jedis.sadd(key, member);
jedis.close();
return s;
}
/**
* 获取给定key中元素个数
*
* @param String
* key
* @return 元素个数
* */
public long scard(String key) {
// ShardedJedis sjedis = getShardedJedis();
Jedis sjedis = getJedis();
long len = sjedis.scard(key);
sjedis.close();
return len;
}
/**
* 返回从第一组和所有的给定集合之间的差异的成员
*
* @param String
* ... keys
* @return 差异的成员集合
* */
public Set<String> sdiff(String... keys) {
Jedis jedis = getJedis();
Set<String> set = jedis.sdiff(keys);
jedis.close();
return set;
}
/**
* 这个命令等于sdiff,但返回的不是结果集,而是将结果集存储在新的集合中,如果目标已存在,则覆盖。
*
* @param String
* newkey 新结果集的key
* @param String
*
没有合适的资源?快使用搜索试试~ 我知道了~
一个很好的项目,最新的基于JAVAEE校园商铺系统
共1001个文件
class:204个
java:181个
gif:152个
需积分: 23 37 下载量 89 浏览量
2019-03-17
20:33:31
上传
评论 9
收藏 6.6MB ZIP 举报
温馨提示
最完整的代码,数据库,图片一样齐全,最新版本已调试过
资源推荐
资源详情
资源评论
收起资源包目录
一个很好的项目,最新的基于JAVAEE校园商铺系统 (1001个子文件)
ShopManagementController.class 10KB
ShopCategoryServiceImpl.class 10KB
ProductManagementController.class 10KB
ShopCategoryController.class 9KB
OwnerAuthController.class 9KB
CustomerAuthController.class 9KB
MyAwardController.class 8KB
HeadLineServiceImpl.class 8KB
UserProductManagementController.class 8KB
HeadLineController.class 8KB
AwardManagementController.class 7KB
BaiduMap.class 7KB
ProductServiceImpl.class 7KB
UserAwardManagementController.class 7KB
ShopAuthManagementController.class 7KB
ShopController.class 7KB
WeixinUtil.class 7KB
AreaController.class 7KB
ShopServiceImpl.class 7KB
WeiXinLoginController.class 6KB
LocalAuthServiceImpl.class 6KB
AreaServiceImpl.class 6KB
ShopListController.class 6KB
UserProductMapServiceImpl.class 5KB
ProductCategoryManagementController.class 5KB
JedisUtil$Hash.class 5KB
WeiXinController.class 5KB
Shop.class 5KB
JedisUtil$Lists.class 5KB
AdminController.class 5KB
WeiXinUserUtil.class 5KB
UserAwardMapServiceImpl.class 5KB
ShopDetailController.class 5KB
ProductDetailController.class 5KB
WechatAuthServiceImpl.class 5KB
AwardServiceImpl.class 4KB
MenuManager.class 4KB
PersonInfoController.class 4KB
ShortNetAddress.class 4KB
JedisUtil$Keys.class 4KB
ShopAuthMapServiceImpl.class 4KB
JedisUtil$Strings.class 4KB
ImageUtil.class 4KB
JedisUtil$Sets.class 4KB
MessageUtil.class 4KB
Product.class 4KB
PersonInfoServiceImpl.class 4KB
CoreServiceUtil.class 4KB
MyProductController.class 4KB
ShopAwardController.class 4KB
UserAwardMap.class 3KB
ShopAuthMap.class 3KB
UserShopManagementController.class 3KB
ProductCategoryServiceImpl.class 3KB
PersonInfo.class 3KB
UserProductMap.class 3KB
FileUtil.class 3KB
LatLonUtil.class 3KB
MainPageController.class 3KB
LoginController.class 3KB
MyShopPointController.class 3KB
UserShopMap.class 3KB
UserProductMapExecution.class 3KB
UserAwardMapExecution.class 3KB
DESUtils.class 3KB
UserShopMapExecution.class 3KB
ShopAuthMapExecution.class 3KB
Award.class 3KB
WechatAuthExecution.class 3KB
PersonInfoExecution.class 3KB
WeiXinUser.class 3KB
LocalAuthExecution.class 3KB
HeadLineExecution.class 3KB
ProductExecution.class 3KB
AwardExecution.class 2KB
AreaExecution.class 2KB
ShopExecution.class 2KB
ShopCategoryExecution.class 2KB
Jdbc.class 2KB
ProductCategory.class 2KB
SignUtil.class 2KB
HttpServletRequestUtil.class 2KB
ShopCategory.class 2KB
JedisUtil.class 2KB
HeadLine.class 2KB
ShopStateEnum.class 2KB
ShopLoginInterceptor.class 2KB
QRCodeUtil.class 2KB
SuperAdminLoginInterceptor.class 2KB
FrontendController.class 2KB
ProductCategoryExecution.class 2KB
LocalAuth.class 2KB
UserProductMapStateEnum.class 2KB
UserAwardMapStateEnum.class 2KB
LocalAuthStateEnum.class 2KB
UserShopMapStateEnum.class 2KB
ShopAuthMapStateEnum.class 2KB
ProductStateEnum.class 2KB
SuperAdminController.class 2KB
ProductCategoryStateEnum.class 2KB
共 1001 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
IT大天使
- 粉丝: 7
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于QT+C++做界面+使用esunny外盘api实现的一个快速行情、交易系统+源码+开发文档说明(毕业设计&课设&项目开发)
- 三菱PLC例程源码单钮起停控制程序三例
- oracle相关数据库的知识,包括建表语句,索引视图,触发器存储过程等
- MATLAB人脸识别+可调摄像头,库外判别预警,GUI界面.zip
- Oracle数据库备份与恢复.pdf
- 302P-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于servlet的游戏商城(采用RESTful架构风格).zip
- 三菱PLC例程源码单按钮正反停
- C# 飞机大战项目, 获取道具,双排子弹 散弹的实现
- 三菱PLC例程源码单按钮五台电机启停控制SFC程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功