Memcached能不缓存二进制格式的数据?

↑Sandheart 发布于 2012/02/15 10:10
阅读 2K+
收藏 0

我想把对象序列化成二进制的格式,然后缓入Memcached,可以吗?

如果不行是不是只能把对象序列化成XML的格式进行存贮?

加载中
0
游侠
游侠
当然可以
↑Sandheart
能不能说一下怎么存,谢谢!
0
winnie_tour
winnie_tour
序列化后对象就是二进制的了,memcached存储的就是这些,怎么还不可。。
↑Sandheart
我现在把对象序列化成进制了,怎么存入Memcached呢? 能不能详细说一下,谢谢!
0
mahone
mahone
这个确实不清楚。。。只知道能存字符串。。。
0
hnynes
hnynes

当然可以了,一般都是直接把结构体放进去的,  没有结构之前,什么都不是,二进制当然也一样了.

有的还直接把整个对象放里面了.也一样用的.这个东西,关键是要敢于尝试

hnynes
hnynes
@↑Sandheart : 就是个类型转换的问题,没有那么复杂,你想多了.
↑Sandheart
能不能说的详细一点,二制的是byte[],这和结构体怎么联系上? 谢谢
0
winnie_tour
winnie_tour
你不用刻意的去序列化对象,memcached以及这些内存数据库的特点都是只要一切可以或支持序列化的对象都可以直接存储,比如你有一个User对象,User user = new User("张三");那么只要User对象实现了Serializable接口就可以了,然后利用memcached client的add方法将其加载到内存中就可以了
↑Sandheart
我主要是想搞懂memcahed客户端是怎么工作,也就是客户端是怎么把数据存到memcached服务器上的, 有没有开源的客户端可以看看吗?
0
xinzaibing
xinzaibing
struct A
{
int a;
int b;
int c;
}

char data[12]={0};
int len = 0;
A tmp;
tmp.a = 1;
tmp.b = 2;
tmp.c = 3;
memcpy(data+len, &tmp.a, sizeof(int));
len += sizeof(int);
memcpy(data+len, &tmp.b, sizeof(int));
len += sizeof(int);
memcpy(data+len, &tmp.c, sizeof(int));

这样就把结构体序列化成data数组了

0
weilingfeng98
weilingfeng98
只要对象实现 Serializable接口,就可以存储了,而且就是二进制格式的
↑Sandheart
我想知道客户端是怎么把二进制数据存入到服务器上的,想弄明白客户端的工作原理,谢谢
0
winnie_tour
winnie_tour

哦。。。最底层像memcached是通过socket与服务端建立连接传输数据的,至于数据如何进行处理的,你可以下载个memcached cilent端api来详细研究,比较有名的就是danga和spy的memcached client

↑Sandheart
谢谢
0
xiaoxin
xiaoxin

这是memcached最基础的功能

返回顶部
顶部