1
xiaogui 2014-04-23 10:58:36 +08:00
怎么说呢,一般不怎么使用redis做数据存储。一般mongodb做数据存储,redis做缓存等。
|
2
verfino 2014-04-23 11:22:46 +08:00
Redis不是有Hash格式么,用户id作为Hash的key,其他信息用json格式的string作为Hash的value
|
5
mercurylanded 2014-04-23 11:40:07 +08:00
table名:id:字段名
然后弄一个set里面是table的所有id 一个tableid用来自增 这是我现在的使用情况需要redis跟mysql之间互相转所以要这样写 |
6
0bit 2014-04-23 11:44:07 +08:00
一般真的不会用redis来存储这些信息,即使存储了,也不利于查询,完全不是redis的优势
|
7
zippera OP @mercurylanded 这个也太松耦合了。。另外,单独用 redis 做数据库好用嘛?
|
9
Ever 2014-04-23 12:04:47 +08:00
序列化后set或者把key打散了hset
|
10
diligence24 2014-04-23 12:54:17 +08:00
hash 可以
|
11
mercurylanded 2014-04-23 13:17:22 +08:00
@zippera 现在用的redis当cache,持久化还是在mysql里
|
12
xia0ta0 2014-04-23 13:43:36 +08:00
redis适合存储简单的key/value或者key/dictionary数据。比如:key是用户id,value是用户信息
redis比memcache强大的地方在可以排序,可以查询某一个字段。比如只是查询前100名用户的姓名 如果想实现复杂的条件查询,还是用mongodb或者mysql之类的。如果非要用redis设计,你会感觉是在做其他数据库已经具有的功能,一致性还有问题。 |
13
verfino 2014-04-23 13:52:51 +08:00
|
14
gkiwi 2014-04-23 13:55:50 +08:00
如果只需要根据id查询用户信息,可以考虑用用hset,以id为field,以dumps后的[name,email,password,...]作为value,以后根据id查询就好了~可以单独分个db来储存这些信息,或者在id前面加个统一前缀做处理就好了~
|
15
Perry 2014-04-23 13:58:21 +08:00 via iPhone
|
16
qdvictory 2014-04-23 13:58:39 +08:00
|
17
lnehe 2014-04-23 14:01:44 +08:00
|
18
zippera OP |
19
waitgroup 2014-04-23 16:36:55 +08:00
@zippera
序列化的问题你太执着了. 属性只需要用redis的数据类型索引需要查询的 user:1 {name:"xxx", "birthday":"1980-1-1"} password:1 blob firiends:1 sets birthday:1980:1:1 sets kyoto tycoon作者(也是tokyo tyrant作者)的这篇文章(http://fallabs.com/blog/promenade.cgi?id=24)讲到了怎么在kyoto tycoon下面实现原先tokyo tyrant内置的table类型, 可以部分套用到redis上来. |