packagedao;importjava.util.HashMap;importjava.util.LinkedList;importjava.util.List;importjava.util.Map;importjava.util.Set;importentity.Grades;importentity.Student;importentity.Teacher;importnet.sf.json.JSONObject;importredis.BaseBO;public class RedisDao extendsBaseBO{public static void main(String[] args) throwsException{
RedisDao dao= newRedisDao();
Student stu= newStudent();
}private static final String H_TEA = "H_TEACHER";private static final String H_STU = "H_STUDENT";private static final String H_GRA = "H_GRADE";private static final String H_EMP = "H_EMPLOYEES";private static final String H_COM = "H_COMPANY";private static final String H_DEPT = "H_DEPT";/*哈希表的操作:field+value、field+value(包括list)*/
//添加实例field+value+使用hmset()函数
public boolean saveStudent(Student stu) throwsException{boolean flag = false;
String result=setBean(genSys(H_STU,stu.getStuid()),stu);if(result == null){returnflag;
}
flag= true;returnflag;
}//添加实例field+value(list)+使用hset()函数
public boolean saveGrades(Grades gra) throwsException{boolean flag = false;
JSONObject jsonobj=JSONObject.fromObject(gra);
getJedis().hset(genSys(H_GRA), gra.getName(), jsonobj.toString());
flag= true;returnflag;
}//多实例查询每个实例一个field
public MapfindGrades(){returngetJedis().hgetAll(genSys(H_GRA));
}//单个实例查询每个实例一个field
publicString findGrade(String field){
String jsonobj=getJedis().hget(genSys(H_GRA), field);returnjsonobj;
}//单实例查询每个实例有多个field
public Student findStudent(String key) throwsException{
Student stu= newStudent();return(Student) getBean(genSys(H_STU,key),stu);
}//更新数据
public boolean updateStudent(Student stu) throwsException{boolean flag = false;
String result=setBean(genSys(H_STU,stu.getStuid()),stu);if(result==null){
flag= true;
}returnflag;
}//删除实例中的信息
public boolean deleteStudent(intid,String name){boolean flag = false;
getJedis().hdel(genSys(H_STU,id),name);returnflag;
}/*list的操作*/
//添加实例+在结尾处加入元素
public voidsaverightstuid(String key,String id){
getJedis().rpush(genSys(H_EMP,key), id);
}//添加实例+在开始处加入元素
public voidsaveleftstuid(String key,String id){
getJedis().lpush(genSys(H_EMP,key), id);
}//删除实例并返回实例从左侧
publicString deleteleftStuid(String key){returngetJedis().lpop(genSys(H_EMP,key));
}//删除元素从右侧
publicString deleterightStuid(String key){returngetJedis().rpop(genSys(H_EMP,key));
}//查询实例
public List findStuid(String key, int start, intend){returngetJedis().lrange(genSys(H_EMP,key), start, end);
}//获取单实例
public String findSingleStuid(String key, intindex){returngetJedis().lindex(genSys(H_EMP,key), index);
}//保留一定数量的元素
public void keepStuid(String key, int start, intend){
getJedis().ltrim(genSys(H_EMP,key), start, end);
}//更新实例
public void updateStuid(String key, intindex, String value){
getJedis().lset(genSys(H_EMP,key), index, value);
}/*Set的操作*/
//添加元素
public voidsaveCompany(String key,String menber){
getJedis().sadd(genSys(H_COM,key), menber);
}//添加多个元素
public voidsaveCompanys(String key,String[] menbers){
getJedis().sadd(genSys(H_COM,key), menbers);
}//查询key中的全部元素
public SetfindCompanySet(String key){
Set set =getJedis().smembers(genSys(H_COM,key));returnset;
}//删除元素
public voiddeleteCompany(String key,String menber){
getJedis().srem(genSys(H_COM,key), menber);
}//删除一个键
public voiddeleteCompanys(String key){
getJedis().del(genSys(H_COM,key));
}/*Sorted Set的操作*/
//添加单个元素
public void saveDept(String key, intscore, String menber){
getJedis().zadd(genSys(H_DEPT,key), score, menber);
}//添加多个元素
public void saveDepts(String key, Mapmap){
getJedis().zadd(genSys(H_DEPT,key), map);
}//查询单个元素
public String findDept(String key, intscore){
Set set = getJedis().zrange(genSys(H_DEPT,key), score, score+1);
String dept=set.iterator().next();returndept;
}//查询键的多个元素
public Set findDepts(String key, int start, intend){
Set set =getJedis().zrange(genSys(H_DEPT,key), start, end);returnset;
}//删除一个键的多个元素通过index删除
public void deleteDepts(String key, int start, intend){
getJedis().zremrangeByRank(genSys(H_DEPT,key), start, end);
}//删除一个键的多个元素通过score
public void deleteDeptByScore(String key, int start, intend){
getJedis().zremrangeByScore(genSys(H_DEPT,key), start, end);
}//更新元素的score
public void updateDeptScore(String key, intscore, String member){
getJedis().zadd(genSys(H_DEPT,key), score, member);
}//更新元素的member
public voidupdateDeptMember(String key, String member){
getJedis().zincrby(genSys(H_DEPT,key),0, member);
}
}