1
ipconfiger 2013-08-27 00:00:32 +08:00
真是铁了心上纯redis?
|
2
Livid MOD OP |
3
ipconfiger 2013-08-27 00:11:09 +08:00
@Livid Redis在快照模式下还是会丢数据的,然后dump快照时会fork一个新进程导致内存占用翻倍,如果用aof模式就没有这么风驰电掣的赶脚了。另快照模式虽然新fork了进程来dump数据,但是当你的数据有几个G的时候.......还是会在瞬间卡住进程,实际使用的时候就是这样子的
|
4
keakon 2013-08-27 00:19:28 +08:00
如果内存比较宝贵的话,建议减小 key 的长度,且不要使用太多 key。
例如 v2ex:member(hash),id 作为 field name,值可以用 JSON 或其他编码方式。 Redis 有个坑就是取出来的数据类型都是字符串,所以想区分 1 和 '1'、'' 和 None 的时候会很囧。而 JSON 可以保留类型信息。 这里有些经验: http://www.keakon.net/tag/Redis |
5
qdvictory 2013-08-27 01:50:34 +08:00 via iPad
这个命名感觉还是有点问题。
之前看资料,推荐key写法是 表明:id:字段 值为字段值,如果多单词可以用.连接,如 topic:1:date 这个规则貌似和php的某个redis gui,(phprediaadmin?)相温和。 @keakon 像python可以用pickle解决 |
7
VYSE 2013-08-27 03:20:12 +08:00
用ORM吧
|
8
ritksm 2013-08-27 03:47:01 +08:00
@ipconfiger 内存翻倍确实是个很烦的事情...被这个卡住机器很多次了...
还是推荐用Redis来做缓存的比较好...如果Cache命中率大的话其实和直接做数据存储性能上没啥太大区别... @keakon 如果要序列化的都是对象的话...比如Django的model...那么pickle用起来还是很方便的... |
9
ritksm 2013-08-27 04:01:39 +08:00
再回答一下问题好了...
我觉得最好的管理方式就是不要管理... 如果是在一个应用里面的name...我一般都是做一个base_name放在config里...像这样v2ex:member:{pk}然后直接format... 如果要图形化看的话可以看看这个https://github.com/ErikDubbelboer/phpRedisAdmin 想不到有啥需要管理Key的场景... |
10
ushuz 2013-08-27 07:42:59 +08:00
都用json
|
11
ipconfiger 2013-08-27 09:40:31 +08:00
哈哈,可以试试我这个方案 https://github.com/ipconfiger/free4my
|
12
clowwindy 2013-08-27 11:28:00 +08:00 via iPhone
我一般分 db 而不是加前缀。
|
13
est 2013-08-27 11:44:40 +08:00
|
14
ipconfiger 2013-08-27 11:55:41 +08:00
@est 没事,我本地虚拟机上的db
|
15
deepanalyzer 2013-08-27 14:43:08 +08:00
最近有篇论文是在讲类似的问题,并且考虑的场景更复杂一些。@Livid 可以参考看看:"Managing Schema Evolution in NoSQL Data Stores", at http://db.disi.unitn.eu/pages/VLDBProgram/pdf/DBPL/paper2.pdf
|