- 工具类意义描述
- redis是目前缓存数据库中最典型、最常用的中间件之一,属于公共技术必备项,其IO相关操作工具化操作会非常方便,故工具之。
- 代码实现
import org.apache.log4j.Logger;
import redis.clients.jedis.Jedis;
import com.tianliang.spider.utils.SystemParas;
/*
* redis操作工具类
*/
public class JedisOperatorUtil {
public static Logger logger = Logger.getLogger(JedisOperatorUtil.class);
private Jedis jedis = null;
public JedisOperatorUtil(String host, int port, String redis_password) {
try{
jedis = new Jedis(host, port);// 链接上redis
jedis.auth(redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
}catch(Exception e){
e.printStackTrace();
System.out.println("此时的链接为"+host+":"+port+":"+redis_password);
}
}
public boolean putObj(byte[] key, byte[] value) {
try {
jedis.set(key, value);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
jedis.set(key, value);
}
return true;
}
public boolean putObj(String key, String value) {
try {
jedis.set(key, value);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
jedis.set(key, value);
}
return true;
}
public byte[] getObj(byte[] key) {
try {
if (key == null) {
return null;
}
return jedis.get(key);
} catch (Exception e) {
logger.info("redis在getObj时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
return jedis.get(key);
}
}
public String getObj(String key) {
try {
if (key == null) {
return null;
}
return jedis.get(key);
} catch (Exception e) {
logger.info("redis在getObj时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
return jedis.get(key);
}
}
// 将key/value放入一个队列中
public boolean lpush(String key, String value) {
try {
jedis.lpush(key, value);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
jedis.lpush(key, value);
}
return true;
}
// 放进set中
public boolean HSet(String key, String field, String value) {
try {
// 直接用这个,省去判重了
jedis.hset(key, field, value);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
jedis.hset(key, field, value);
}
return true;
}
// 判断是否包括某个条目
public boolean HContainsFields(String key, String field) {
boolean status = false;
try {
// 直接用这个,省去判重了
status = jedis.hexists(key, field);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
status = jedis.hexists(key, field);
}
return status;
}
// 从get出来
public byte[] HGet(byte[] key, byte[] field) {
try {
return jedis.hget(key, field);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
return jedis.hget(key, field);
}
}
// 传入字符串格式
public String HGet(String key, String field) {
try {
return jedis.hget(key, field);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
return jedis.hget(key, field);
}
}
// 从hdel出来,返回0说明没有对应的key,即不成功。返回1则代表删除成功
public long HDel(byte[] key, byte[] field) {
try {
return jedis.hdel(key, field);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
return jedis.hdel(key, field);
}
}
// 字节格式
public boolean HSetnx(byte[] key, byte[] field, byte[] value) {
try {
// 直接用这个,省去判重了
return jedis.hsetnx(key, field, value) == 0 ? false : true;
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
return jedis.hsetnx(key, field, value) == 0 ? false : true;
}
}
// 将key/value放入一个队列中
public boolean lpush(byte[] key, byte[] value) {
try {
jedis.lpush(key, value);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
jedis.lpush(key, value);
}
return true;
}
// 从某个队列中将key的值给拿出来
public String rpop(String key) {
String value = null;
try {
value = jedis.rpop(key);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
value = jedis.rpop(key);
}
return value;
}
// 从某个队列中将key的值给拿出来
public byte[] rpop(byte[] key) {
byte[] value = null;
try {
value = jedis.rpop(key);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
value = jedis.rpop(key);
}
return value;
}
// 取得一个key对应的队列的现有长度
public long llen(String key) {
long size = 0;
try {
size = jedis.llen(key);
} catch (Exception e) {
logger.info("redis在set时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
size = jedis.llen(key);
}
return size;
}
public void saveAll() {
try {
jedis.save();
} catch (Exception e) {
logger.info("redis在getObj时,出现异常,将重新联接一次");
jedis = new Jedis(SystemParas.redis_host, SystemParas.redis_port);// 链接上redis
jedis.auth(SystemParas.redis_password);
logger.info("Redis客户端已成功连接至服务器端!");
jedis.save();
}
}
public static void main(String[] args) {
// jedis.flushAll();
JedisOperatorUtil jedisOperatorUtil = new JedisOperatorUtil(
SystemParas.redis_host, SystemParas.redis_port,
"sinx/cosx=tanx");
for (int i = 0; i < 1; i++) {
jedisOperatorUtil.putObj("k" + i, "v" + i);
}
for (int i = 0; i < 1; i++) {
// jedisOperatorUtil.putObj("k" + i, "v" + i);
System.out.println(jedisOperatorUtil.getObj("k" + i));
}
// String key = jedisOperatorUtil.getObj("vbv");
// System.out.println(key);
System.out.println("done!");
}
}
天亮教育是一家从事大数据云计算、人工智能、教育培训、产品开发、咨询服务、人才优选为一体的综合型互联网科技公司。
公司由一批BAT等一线互联网IT精英人士创建,
以"快乐工作,认真生活,打造IT职业技能教育的一面旗帜"为愿景,胸怀"让天下没有难找的工作"使命,
坚持"客户第一、诚信、激情、拥抱变化"的价值观,
全心全意为学员赋能提效,践行技术改变命运的初心。
更多学习讨论, 请加入
官方-天亮大数据交流QQ群-366784928
群二维码:
官方-天亮web前端交流QQ群-972788995
群二维码:
欢迎关注天亮教育公众号,大数据技术资料与课程、招生就业动态、教育资讯动态、创业历程分享一站式分享,官方微信公众号二维码:
爬虫、nlp技术qq群320349384
hadoop & spark & hive技术群297585251
教育培训官网:http://myhope365.com
项目研发业务尚云科技官网:http://shangyuninfo.com/
天亮教育公开课-从小白到大佬修成记-全系列视频地址:http://myhope365.com/news/index?id=66
天亮云课堂小程序版,微信扫码下图可直接进入学习!!!