10.Jedis如何进行序列化?也就是Jedis如何保存java对象? 嘻哈的简写笔记

您所在的位置:网站首页 redis存储对象是序列化问题 10.Jedis如何进行序列化?也就是Jedis如何保存java对象? 嘻哈的简写笔记

10.Jedis如何进行序列化?也就是Jedis如何保存java对象? 嘻哈的简写笔记

#10.Jedis如何进行序列化?也就是Jedis如何保存java对象? 嘻哈的简写笔记| 来源: 网络整理| 查看: 265

数据传输一共就两种方式:一种是字符串,另一种就是Byte[]数组 如果**原来是字符串那就不用转化,直接就可以传;*** 如果原来不是字符串,比如java对象那就需要转化成字符串或者转化成Byte[]数组才可以传数据;*** 转化成字符串比如JSON,或者转成Byte[]数组;

转成Byte[]数组步骤: (1)新建实体类;这个类要记住要继承序列化!!! implements Serializable 序列化时实体类要继承!!!

public class User implements Serializable { private String name; private String age; }

(2)导入转化工具依赖 (3)进行转化传值,key值是字符串,value值是一个对象;都要转成Byte[]数组;

@Test public void settestRedis2(){//Redis 序列化存 //连接Redis 创建Jedis对象输入连接IP和端口 Jedis jedis = new Jedis("10.11.57.76",6379); //操作 User user = new User("张三","122"); //jedis.set("user:1",user); //现在是字符串,值是一个对象,需要进行处理才可以传值 byte[] key = SerializationUtils.serialize("user:1");//把字符串转化成Byte[]数组; byte[] val = SerializationUtils.serialize(user);//这是把对象转成Byte[]数组; jedis.set(key,val); }

(4)进行取值,取出来的值进行反序列化把,取出来的Byte[]数组进行转成对象;

@Test public void gettestRedis2(){//序列化取 //连接Redis 创建Jedis对象输入连接IP和端口 Jedis jedis = new Jedis("10.11.57.76",6379); byte[] key = SerializationUtils.serialize("user:1");//把字符串转化成Byte[]数组; byte[] val = jedis.get(key);//取值也是一个Byte[]数组;要取这个值; User user = (User)SerializationUtils.deserialize(val);//反序列化,就是把获取的数组转成对象; System.out.println(user); }

还可以转化成JSON 进行传递对象; 传值: 1.导入fastJSON 依赖; 2.传值; 3.取值; // 存储对象 - 以String形式存储 转化成JSON传递到Redis

@Test public void setString(){ //1. 连接Redis Jedis jedis = new Jedis("10.11.57.76",6379); //2.1 准备key(String)-value(User) String stringKey = "stringUser"; User value = new User("李四","2"); //2.2 使用fastJSON将value转化为json字符串 String stringValue = JSON.toJSONString(value); //2.3 存储到Redis中 jedis.set(stringKey,stringValue); //3. 释放资源 jedis.close(); }

// 获取对象 - 以String形式获取 获取JSON并转化

@Test public void getString(){ //1. 连接Redis Jedis jedis = new Jedis("10.11.57.76",6379); //2.1 准备一个key String key = "stringUser"; //2.2 去Redis中查询value String value = jedis.get(key); //2.3 将value反序列化为User User user = JSON.parseObject(value, User.class); //2.4 输出 System.out.println("user:" + user); //3. 释放资源 jedis.close(); }

。。。。。。。。。。。。。

嘻哈的简写笔记

。。。。。。。。。。。。。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3