package com.haoyou.tosaas.redis;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.data.redis.core.*;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import redis.clients.jedis.BinaryClient;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.SortingParams;
import java.io.*;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* Created by wf on 2018-10-27.
*/
@Component
@Slf4j
public class RedisUtils {
@Autowired
private JedisPool jedisPool;
public String makeSessionKey(String name,String token){
String key = String.format("session_%s_%s",name,token);
return key;
}
/**
* <p>
* 通过key获取储存在redis中的value
* </p>
* <p>
* 并释放连接
* </p>
*
* @param key
* @param indexdb 选择redis库 0-15
* @return 成功返回value 失败返回null
*/
public String get(String key) {
Jedis jedis = null;
String value = null;
try {
jedis = jedisPool.getResource();
value = jedis.get(key);
log.info(value);
} catch (Exception e) {
log.error(e.getMessage());
} finally {
returnResource(jedisPool, jedis);
}
return value;
}
/**
* <p>
* 通过key获取储存在redis中的value
* </p>
* <p>
* 并释放连接
* </p>
*
* @param key
* @param indexdb 选择redis库 0-15
* @return 成功返回value 失败返回null
*/
public byte[] get(byte[] key) {
Jedis jedis = null;
byte[] value = null;
try {
jedis = jedisPool.getResource();
value = jedis.get(key);
} catch (Exception e) {
log.error(e.getMessage());
} finally {
returnResource(jedisPool, jedis);
}
return value;
}
/**
* <p>
* 设置key value并制定这个键值的有效期
* </p>
*
* @param key
* @param value
* @param seconds
* 单位:秒
* @return 成功返回OK 失败和异常返回null
*/
public String set(String key, String value, Integer seconds) {
Jedis jedis = null;
String res = null;
try {
jedis = jedisPool.getResource();
if(seconds!=null && seconds>0)
res = jedis.setex(key, seconds, value);
else
res = jedis.set(key,value);
} catch (Exception e) {
log.error(e.getMessage());
} finally {
returnResource(jedisPool, jedis);
}
return res;
}
/**
* <p>
* 向redis存入key和value,并释放连接资源
* </p>
* <p>
* 如果key已经存在 则覆盖
* </p>
*
* @param key
* @param value
* @param seconds 单位秒
* @return 成功 返回OK 失败返回 0
*/
public String set(byte[] key, byte[] value, Integer seconds) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
if(seconds!=null && seconds>0)
return jedis.setex(key,seconds,value);
else
return jedis.set(key, value);
} catch (Exception e) {
log.error(e.getMessage());
return "0";
} finally {
returnResource(jedisPool, jedis);
}
}
/**
* <p>
* 删除指定的key,也可以传入一个包含key的数组
* </p>
*
* @param keys 一个key 也可以使 string 数组
* @return 返回删除成功的个数
*/
public Long del(String... keys) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
return jedis.del(keys);
} catch (Exception e) {
log.error(e.getMessage());
return 0L;
} finally {
returnResource(jedisPool, jedis);
}
}
/**
* <p>
* 通过key向指定的value值追加值
* </p>
*
* @param key
* @param str
* @return 成功返回 添加后value的长度 失败 返回 添加的 value 的长度 异常返回0L
*/
public Long append(String key, String str) {
Jedis jedis = null;
Long res = null;
try {
jedis = jedisPool.getResource();
res = jedis.append(key, str);
} catch (Exception e) {
log.error(e.getMessage());
return 0L;
} finally {
returnResource(jedisPool, jedis);
}
return res;
}
/**
* <p>
* 判断key是否存在
* </p>
*
* @param key
* @return true OR false
*/
public Boolean exists(String key) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
return jedis.exists(key);
} catch (Exception e) {
log.error(e.getMessage());
return false;
} finally {
returnResource(jedisPool, jedis);
}
}
/**
* <p>
* 清空当前数据库中的所有 key,此命令从不失败。
* </p>
*
* @return 总是返回 OK
*/
public String flushDB() {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
return jedis.flushDB();
} catch (Exception e) {
log.error(e.getMessage());
} finally {
returnResource(jedisPool, jedis);
}
return null;
}
/**
* <p>
* 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。
* </p>
*
* @param key
* @param value
* 过期时间,单位:秒
* @return 成功返回1 如果存在 和 发生异常 返回 0
*/
public Long expire(String key, int value) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
return jedis.expire(key, value);
} catch (Exception e) {
log.error(e.getMessage());
return 0L;
} finally {
returnResource(jedisPool, jedis);
}
}
/**
* <p>
* 以秒为单位,返回给定 key 的剩余生存时间
* </p>
*
* @param key
* @return 当 key 不存在时,返回 -2 。当 key 存在但没有设置剩余生存时间时,返回 -1 。否则,以秒为单位,返回 key
* 的剩余生存时间。 发生异常 返回 0
*/
public Long ttl(String key,int indexdb) {
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
jedis.select(indexdb);
return jedis.ttl(key);
} catch (Exception e) {
log.error(e.getMessage());
return 0L;
} finally {
returnResource(jedisPool, jedis);
}
}
/**
* <p>
* 移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )
* </p>
*
* @param key
* @return 当生存时间移除成功时,返回 1 .如果 key 不存在或 key 没有设置生存时间,返回 0 , 发生异常 返回 -1
*/
public Long persist(String key) {
Jedis jedis = null;
try {
jedi
没有合适的资源?快使用搜索试试~ 我知道了~
saas 开源开发框架
共246个文件
xml:106个
java:49个
class:49个
4星 · 超过85%的资源 需积分: 45 150 下载量 4 浏览量
2019-07-13
15:15:29
上传
评论 21
收藏 380KB ZIP 举报
温馨提示
tosaas 开发框架是一款通用的 saas 开发框架,能快速的将传统单企业应用转化成saas多租户模式,支持大数据存储高并发访问,支持无限水平扩展存储服务器、应用服务器数量,经受过百万级用户的实际应用考验。
资源详情
资源评论
资源推荐
收起资源包目录
saas 开源开发框架 (246个子文件)
RedisUtils.class 33KB
RSATool.class 13KB
VerifyTokenInterceptor.class 8KB
EncryptUtil.class 6KB
UserServiceImpl.class 5KB
BzDBController.class 5KB
TableNameReplacer.class 4KB
ServerConfigServiceImpl.class 4KB
CompanyServiceImpl.class 4KB
DynamicDataSource.class 3KB
DemoController.class 3KB
BzDBServiceImpl.class 3KB
CompanyController.class 3KB
UserController.class 3KB
TokenConfiguration.class 3KB
MongodbClient.class 3KB
RequestWrapper.class 3KB
UserDAOImpl.class 3KB
ServerConfigDAOImpl.class 3KB
CompanyDAOImpl.class 3KB
BzDBDAOImpl.class 3KB
RedisConfig.class 2KB
ServerConfig.class 2KB
MybatisConfig.class 2KB
User.class 2KB
Result.class 2KB
DynamicDataSourceContextHolder.class 2KB
TosaasApplication.class 2KB
Company.class 1KB
HttpServletRequestReplacedFilter.class 1KB
BzDB.class 1KB
MongoConfig.class 1KB
RequestWrapper$1.class 1KB
MysqlConfig.class 1KB
InterceptorConfig.class 1KB
UserIdHolder.class 931B
DBIDHolder.class 905B
IDemoMapper.class 788B
Demo.class 768B
UserService.class 651B
TosaasApplicationTests.class 630B
ServerConfigService.class 625B
ServerConfigDAO.class 600B
UserDAO.class 575B
CompanyDAO.class 563B
CompanyService.class 561B
BzDBDAO.class 554B
BzDBService.class 520B
IBzDBMapper.class 366B
mvnw.cmd 6KB
css.css 26KB
css.css 26KB
css2.css 2KB
css2.css 2KB
.gitignore 303B
main.html 15KB
main.html 15KB
reg.html 13KB
update.html 13KB
login.html 13KB
add.html 13KB
update.html 12KB
findByName.html 12KB
findById.html 12KB
deleteById.html 12KB
add.html 12KB
modifyPwd.html 12KB
add.html 12KB
findAll.html 12KB
findMyCompany.html 12KB
findMyCompany.html 11KB
left.html 1KB
index.html 761B
index.html 761B
left.html 500B
java.iml 11KB
maven-wrapper.jar 47KB
RedisUtils.java 55KB
RSATool.java 17KB
EncryptUtil.java 9KB
VerifyTokenInterceptor.java 9KB
UserServiceImpl.java 5KB
MavenWrapperDownloader.java 5KB
TableNameReplacer.java 4KB
UserController.java 3KB
DynamicDataSource.java 3KB
BzDBController.java 3KB
CompanyController.java 3KB
DemoController.java 3KB
ServerConfigServiceImpl.java 3KB
RequestWrapper.java 3KB
CompanyServiceImpl.java 3KB
MybatisConfig.java 3KB
MongodbClient.java 3KB
BzDBServiceImpl.java 2KB
Result.java 2KB
ServerConfig.java 2KB
TokenConfiguration.java 2KB
RedisConfig.java 2KB
ServerConfigDAOImpl.java 2KB
共 246 条
- 1
- 2
- 3
ganxiaojian
- 粉丝: 9
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1