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

redis对象存储

发布时间: 2022-04-28 04:03:23

① 怎么把一个实体对象存入redis里面

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

② redis 存储java对象是json字符串还是序列化

是进行序列化存储的。 Redis存储对象时,要对这个对象进行序列化。序列化还有一个作用是可以将对象序列化之后通过socket进行传输。那么,JSON也是一个进行数据交换的格式。何不将对象转为JSON字符串然后当作String存在Value中也是可以的。redis 存储java对象是json字符串还是序列化

③ 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可以直接存储对象吗

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

⑤ Redis在实际项目怎么把一个对象,和list集合存进去,用哪种数据类型

如果需要用到Redis存储List对象,而list又不需要进行操作,可以按照MC的方式进行存储,不过Jedis之类的客户端没有提供API,可以有两种思路实现:
1. 分别序列化 elements ,然后 set 存储
2. 序列化List对象,set存储
这两种方法都类似MC的 Object方法存储,运用这种方式意味着放弃redis对List提供的操作方法。

⑥ 对象存储oss和redis的区别

为了支持云服务,MySQL的备份做了极大地改进,比如Global Transaction Identifiers (GTIDs). GTIDs可以轻松地跟踪和比较master和slave服务器之间的进度状态。
在2013年4月,Oracle发布了针对Hadoop的MySQL Applier。Nokia首先将MySQL应用于大数据环境中,包括集中的Hadoop集群等等。

⑦ Redis怎么存储List对象比较好

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

⑧ redis怎么存储list对象

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

热点内容
安卓如何把手机短信导入电脑 发布:2024-11-18 11:32:44 浏览:297
如何天选2查看电脑配置 发布:2024-11-18 11:32:36 浏览:421
phpinclude目录 发布:2024-11-18 11:29:38 浏览:722
西门子hmi屏反编译软件 发布:2024-11-18 11:29:36 浏览:763
安卓机如何看微信撤回消息 发布:2024-11-18 11:25:08 浏览:570
解压循环动画创意c4d 发布:2024-11-18 11:20:20 浏览:932
phpcurlcookie 发布:2024-11-18 11:20:10 浏览:78
橙子生存之旅服务器ip 发布:2024-11-18 11:17:23 浏览:812
mysql密码如何修改 发布:2024-11-18 11:11:06 浏览:424
php背景代码 发布:2024-11-18 10:49:54 浏览:457