1.新建maven项目
- 首先在idea上新建一个maven项目
- 导入依赖(如图)
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
- 这样就行了
2.测试idea连接redis测试基本数据类型
准备工作
- 创建一个类RedisTest
- 在这个类中写一个getJedis方法,获得dedis对象
public static Jedis getJedis(){
//本机地址,端口号
Jedis jedis=new Jedis("127.0.0.1",6379);
//认证密码
jedis.auth("123456");
return jedis;
}
开始测试(我省事直接在RedisTest类中测试了)
可以参考我之前的redis的五种基本数据类型,对应着方法测试对应这个
- 测试string类型
/**
* 测试string类型
*/
public static void testString(){
Jedis jedis=getJedis();
jedis.set("name","张三");
System.out.println(jedis.get("name"));
jedis.mset("id","1","address","hn");
//输出value的list集合
System.out.println(jedis.mget("id","name","address"));
//id自增1
jedis.incr("id");
System.out.println(jedis.get("id"));
//id自增2
jedis.incrBy("id",2);
System.out.println(jedis.get("id"));
}
- 测试hash类型
/**
* 测试hash类型
*/
public static void testHash(){
//获取jedis对象
Jedis jedis=getJedis();
//创建hashMap对象
Map<String,String> map=new HashMap<>();
map.put("id","1");
map.put("name","李四");
map.put("address","hn");
//存放hashmap对象
jedis.hmset("student",map);
//获取单个字段值
System.out.println(jedis.hmget("student","id","name","address"));
//获取student的字段数
System.out.println(jedis.hlen("student"));
//判断student是否存在id字段
System.out.println(jedis.hexists("student","id"));
//获取student的全部字段
System.out.println(jedis.hkeys("student"));
//获取student的全部字段值
System.out.println(jedis.hvals("student"));
Set<String> set= jedis.hkeys("student");
for (String key : set) {
System.out.println("key是"+key+"\t"+"value是"+jedis.hmget("student",key));
}
}
- 测试list类型
/**
* 测试List类型
*/
public static void testList(){
//获取jedis对象
Jedis jedis=getJedis();
//从左边插入
jedis.lpush("mylist1","aaa");
jedis.lpush("mylist1","bbb");
jedis.lpush("mylist1","ccc");
jedis.lpush("mylist1","ddd");
System.out.println(jedis.lrange("mylist1",0,-1));
//从右边插入
jedis.rpush("mylist2","aaa");
jedis.rpush("mylist2","bbb");
jedis.rpush("mylist2","ccc");
jedis.rpush("mylist2","ddd");
System.out.println(jedis.lrange("mylist2",0,-1));
}
public static void testSort() {
//获取jedis对象
Jedis jedis = getJedis();
//用于删除已存在的sort1键,避免追加
jedis.del("sort1");
jedis.rpush("sort1","56");
jedis.rpush("sort1","80");
jedis.rpush("sort1","60");
jedis.rpush("sort1","90");
//获取全部数据 [56, 80, 60, 90]
System.out.println(jedis.lrange("sort1",0,-1));
//获取排序后的数据 [56, 60, 80, 90]
System.out.println(jedis.sort("sort1"));
//原始数据不发生改变 [56, 80, 60, 90]
System.out.println(jedis.lrange("sort1",0,-1));
//排序
SortingParams sortingParams=new SortingParams();
//降序
System.out.println("降序"+jedis.sort("sort1",sortingParams.desc()));
//升序
System.out.println("升序"+jedis.sort("sort1",sortingParams.asc()));
}
- 测试set类型
/**
* 测试set类型
*/
public static void testSet(){
//获取jedis对象
Jedis jedis=getJedis();
jedis.sadd("myset1","aa");
jedis.sadd("myset1","bb");
jedis.sadd("myset1","cc");
jedis.sadd("myset1","dd");
//获取myset1的成员数量
System.out.println(jedis.scard("myset1"));
//获取myset1的全部成员
System.out.println(jedis.smembers("myset1"));
//判断myset1中是否存在该成员
System.out.println(jedis.sismember("myset1","aa"));
System.out.println(jedis.sismember("myset1","ee"));
//随机获得myset1的一个成员
System.out.println(jedis.srandmember("myset1"));
}
- 测试sorted_set类型
public static void testSorted_set(){
//获取jedis对象
Jedis jedis=getJedis();
jedis.zadd("mysorted_set",1,"96");
jedis.zadd("mysorted_set",2,"70");
jedis.zadd("mysorted_set",3,"86");
jedis.zadd("mysorted_set",4,"50");
//获取全部数据
Set<String> set= jedis.zrange("mysorted_set",0,10);
for (String s : set) {
System.out.println(s);
}
}
3.测试将实体类对象存入redis并取出
- 1.首先新建一个pojo包,创建一个User实体类
/**
* 实体类User
*/
public class User implements Serializable {
//定义一个序列号
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String password;
private String headPhoto; //头像图片
private String src; //头像图片
private String kind;
private String createTime;
private Integer status;//1正常2删除
public Integer getId() {
return id;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
", headPhoto='" + headPhoto + '\'' +
", src='" + src + '\'' +
", kind='" + kind + '\'' +
", createTime='" + createTime + '\'' +
", status=" + status +
'}';
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getHeadPhoto() {
return headPhoto;
}
public void setHeadPhoto(String headPhoto) {
this.headPhoto = headPhoto;
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getSrc() {
return src;
}
public void setSrc(String src) {
this.src = src;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
- 2.新建一个util工具包,创建一个SerializeUtil序列化工具类
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class SerializeUtil {
/**
* 序列化
*/
public static byte[] serialize(Object obj) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
// 序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
byte[] byteArray = baos.toByteArray();
return byteArray;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 反序列化
*
* @param bytes
* @return
*/
public static Object unSerialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
// 反序列化为对象
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
-
3.开始测试
-
将user对象存放进redis中
/**
* 测试将一个实体类对象存入到redis中
*/
public static void testSetObject(){
//创建一个需要存放进redis的实体类对象
User user =new User();
//为user的字段赋值
user.setId(1);
user.setName("zhangsan");
user.setPassword("123456");
//获取jedis对象
Jedis jedis = getJedis();
//将user对象存放进redis
jedis.set("user".getBytes(StandardCharsets.UTF_8), SerializeUtil.serialize(user));
}
- 将redis中的user对象取出来
/**
* 测试将从redis中取出实体类对象
*/
public static void testGetObject(){
//获取jedis对象
Jedis jedis = getJedis();
User user=(User) SerializeUtil.unSerialize(jedis.get("user".getBytes(StandardCharsets.UTF_8)));
System.out.println(user);
}