Redis如何针对存储GUID列表进行优化?

时间:2015-07-07 07:12:46

标签: redis node-redis

我们正在使用Redis存储洗牌的牌组。卡片由20个字符的GUID表示,卡片组是一组混洗卡片GUID。在Deck列表中调用的主要操作是LLEN(长度)和LPOP(弹出)。我们推到甲板的唯一时间是a)当甲板最初创建时b)当甲板用完纸牌并重新洗牌时(很少发生)。目前,甲板的长度从10到700不等。

Redis可以针对此类问题进行哪种类型的内存优化?我们可以配置任何类型的设置来减少内存开销,或优化使用(zip)列表数据类型的方式吗?

相关文章:http://redis.io/topics/memory-optimization

1 个答案:

答案 0 :(得分:2)

我的第一个建议是使用8byte无符号整数作为标识符键而不是guid,这样可以节省内存中每个条目几个字节,并提高任何数据库的整体性能,包括你正在使用的redis。

如果您想使用guid,并考虑列表的大小以及您在列表中执行的操作。 您可以调整redis默认值以满足您的需要: Redis默认:

list-max-ziplist-entries 512
list-max-ziplist-value 64

您可以将其更改为:

list-max-ziplist-entries 1024 #to accomodate your 700 cards list
list-max-ziplist-value 256 # to accomodate your 20 byte guids

YMMV,因此您需要使用两种设置对redis进行基准测试,以获得存储以及样本数据的读/写性能。