当前位置:首页 » 存储配置 » javaredis存储对象存储

javaredis存储对象存储

发布时间: 2023-03-05 07:07:59

① redis怎么存储list对象

方案一:直接使用List结构,List里面存储二进制的任务Bean信息,这样做查询全部任务很方便,查询单条任务速度较慢,并且删除和修改状态很麻烦;方案二:直接使用Hash结构,Hash的key存储任务ID,value存储二进制的Bean信息,这样做查询所有任务、查询单条任务以及删除任务都很快,但是修改状态也必须先取出数据再修改再插入!

② redis存储对象大小2m

Redis 存储字符串和对象
1 测试类
import redis.clients.RedisClinet;
import redis.clients.SerializeUtil;
import redis.clients.jedis.Jedis;

public class Test {

/**
* Administrator
* @param args
*/
public static void main(String[] args) {

// 操作单独的文本串
Jedis redis= new Jedis( "10.2.31.38", 6379);

redis.set( "key", "value");
System. out.println(redis.get( "key"));
System. out.println(redis.del( "key"));

// 操作实体类对象
Goods good= new Goods(); // 这个Goods实体我就不写了啊
good.setName( "洗衣机" );
good.setNum(400);
good.setPrice(19l);
redis.set( "good".getBytes(), SerializeUtil. serialize(good));
byte[] value = redis.get( "good".getBytes());
Object object = SerializeUtil. unserialize(value);
if(object!= null){
Goods goods=(Goods) object;
System. out.println(goods.getName());
System. out.println(goods.getNum());
System. out.println(goods.getPrice());
}
System. out.println(redis.del( "good".getBytes()));

// 操作实体类对象2(实际上和上面是一样的)
String key= "goods-key";
Goods g= new Goods();
g.setName( "电风扇--d" );
g.setNum(200);
String temp=RedisClinet. getInstance().set(g, key);
System. out.println(temp);

Object o=RedisClinet. getInstance().get(key);
if(o!= null)
{
Goods g1=(Goods)o;
System. out.println(g1.getName());
System. out.println(g1.getNum());
}
System. out.println(RedisClinet. getInstance().del(key));

}
}

2 RedisClinet 客户端类
package redis.clients;
import redis.clients.jedis.Jedis;
/**
*
* @author ajun
*
*/
public class RedisClinet {
private static final String ip= "10.2.31.38";
private static final int port=6379;
protected static RedisClinet redis = new RedisClinet ();
protected static Jedis jedis = new Jedis( ip, port);;
static {

}
protected RedisClinet(){
System. out.println( " init Redis ");
}
public static RedisClinet getInstance()
{
return redis;
}

/**set Object*/
public String set(Object object,String key)
{
return jedis.set(key.getBytes(), SerializeUtil.serialize(object));
}

/**get Object*/
public Object get(String key)
{
byte[] value = jedis.get(key.getBytes());
return SerializeUtil. unserialize(value);
}

/**delete a key**/
public boolean del(String key)
{
return jedis.del(key.getBytes())>0;
}

}

3 序列化工具类

/**
*
*/
package redis.clients;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
* @author Administrator
*
*/
public class SerializeUtil {
public static byte[] serialize(Object object) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
// 序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
} catch (Exception e) {

}
return null;
}

public static Object unserialize( byte[] bytes) {
ByteArrayInputStream s = null;
try {
// 反序列化
s = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(s);
return ois.readObject();
} catch (Exception e) {

}
return null;
}
}

③ redis 存储自定义java对象有几种方式

1,继承Serializable接口,反序列化成byte数组
2,把JavaBean转成JSON字符串

④ redis怎么存储类对象

Redis是Key-Value型内存数据库,不能直接存储对象,如果实体对象可以序列化,可以将序列化后的内容存入一个Value中。

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:535
微博数据库设计 发布:2025-07-05 15:30:55 浏览:31
linux485 发布:2025-07-05 14:38:28 浏览:310
php用的软件 发布:2025-07-05 14:06:22 浏览:760
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:437
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:733
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:248
java的开发流程 发布:2025-07-05 12:45:11 浏览:696
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:288
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:837