package com.lml.redis;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import redis.clients.jedis.Jedis;
public class RedisDBHelper {
Jedis js = null;
private String host = "127.0.0.1";
private int port = 6379;
/**
* 鏈接redis數據庫,進行初始化
*
* @param hostUrl:鏈接服務器的ip/名稱
* @param hostPort:主機的端口號
* @return:返回是否初始化鏈接成功
*/
public boolean init(String host, int port) {
if (js == null) {
js = new Jedis(host, port);
}
if (js != null) {
System.out.println("初始化成功");
return true;
} else {
return false;
}
}
/**
* 鏈接redis數據庫,進行初始化
*
* @param host:鏈接服務器的ip/名稱
* @return:返回是否初始化鏈接成功
*/
public boolean init(String host) {
if (js == null) {
js = new Jedis(host);
}
if (js != null) {
System.out.println("初始化成功");
return true;
} else {
return false;
}
}
/**
* 新增數據
*
* @param key:新增數據的鍵
* @param value:新增數據的值
* @return:返回boolean值,表示是否新增數據成功
*/
public boolean set(String key, String value) {
if (js.exists(key)) {
System.out.println(key + "已存在");
System.out.println("若要修改數據請使用update()方法");
return false;
} else {
js.set(key, value);
if (js.exists(key)) {
if (value.equals(js.get(key))) {
System.out.println("增加數據成功");
return true;
} else {
System.out.println("增加數據失敗");
return false;
}
} else {
System.out.println("增加數據失敗");
return false;
}
}
}
/**
* 添加多條數據
*
* @param map:放置多條數據的鍵值對集合
* @return:返回boolean值,表示是否新增數據全部成功
*/
public boolean sets(Map<String, String> map) {
boolean sets = true;
for (Entry<String, String> e : map.entrySet()) {
String key = e.getKey();
String value = e.getValue();
boolean set = set(key, value);
if (!set) {
sets = false;
}
}
return sets;
}
/**
* 刪除數據
*
* @param key:要刪除數據的key
* @return:返回boolean值,表示是否刪除成功
*/
public boolean delete(String key) {
if (js.exists(key)) {
if (js.del(key) == 1) {
System.out.println("刪除數據成功");
return true;
} else {
System.out.println("刪除數據失敗");
return false;
}
} else {
System.out.println(key + "不存在");
return false;
}
}
/**
* 刪除一組數據
*
* @param keys:要刪除數據鍵集合
* @return:返回boolean值,表示是否全部刪除成功
*/
public boolean deletes(String[] keys) {
boolean deletes = true;
for (String key : keys) {
boolean delete = delete(key);
if (!delete) {
deletes = false;
}
}
return deletes;
}
/**
* 修改數據
*
* @param key:要修改數據的key
* @param value:要修改數據的值
* @return:返回boolean值,表示是否修改成功
*/
public boolean update(String key, String value) {
if (js.exists(key)) {
js.set(key, value);
if (value.equals(js.get(key))) {
System.out.println("修改數據成功");
return true;
} else {
System.out.println("修改數據失敗");
return false;
}
} else {
System.out.println(key + "不存在");
System.out.println("若要新增數據請使用set()方法");
return false;
}
}
/**
* 獲取表中數據
*
* @param key:要查詢的key
* @return:返回查找到的數據;如果鍵不存在則返回null;
*/
public String get(String key) {
if (js.exists(key)) {
System.out.println(js.get(key));
return js.get(key);
} else {
System.out.println(key + "不存在");
return null;
}
}
/**
* 獲取多條key的值
* @param keys:多條key的集合
* @return
*/
public Map<String, String> gets(String[] keys) {
Map<String, String> map = new HashMap<String, String>();
for (String key : keys) {
if (js.exists(key)) {
String value = js.get(key);
map.put(key, value);
System.out.println(key + "-" + value);
} else {
System.out.println(key + "不存在");
}
}
return map;
}
/**
* 獲得所有數據的鍵
*/
public void getKeys() {
Set<String> set = js.keys("*");
if (set.size() != 0) {
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String key = it.next();
System.out.println(key);
}
} else {
System.out.println("數據庫暫時沒有數據");
}
}
/**
* 查詢所有數據
*/
public void getAll() {
Set<String> set = js.keys("*");
if (set.size() != 0) {
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String key = it.next();
String value = js.get(key);
System.out.println(key + "-" + value);
}
} else {
System.out.println("數據庫暫時沒有數據");
}
}
/**
* 關閉鏈接
*/
public void unInit() {
if (js != null) {
js.close();
js = null;
}
}
}