2013-11-20 47 views
0

我正在使用redis进行缓存。我已经在数据库上启动了一个存储过程并将结果转换为数据表。现在我必须将这个数据表存储在redis缓存中。让我知道最好的办法。如何使用redis存储数据表中的密钥

+0

告诉我们更多关于数据的性质。它有多大?它是如何构成的? – Larsenal

回答

0

Redis提供更强大的数据类型来存储数据。

您需要查看哈希,集合,列表,简单键和有序集以准确找出适合您需求的数据类型。

您应该知道如何使用这些存储的数据,然后选择适合/满足您需求的最佳数据结构。

这里的是以下格式

Id name status 
1 XYZ A 
2 ABC I 

对Redis的数据类型的一个小前奏 A fifteen minute introduction to Redis data types

0

至于你提到你的问题的数据表,我假设你有数据如果这种格式有数据。我会把它写成哈希。所以1个纪录= 1个散列

HMSET datatable:1 name XYZ status A 
HMSET datatable:2 name ABC status I 

我将保持哈希键在另一组

SADD datatable:keys 1 
SADD datatable:keys 2 

然后你就可以使用

SMEMBERS datatable:keys 

之后得到的所有哈希键你可以获得所有的哈希值。确保你使用REDIS管道。如果您使用的是redis 2.8,则不需要使用SMEMBERS,并在应用程序级别处理它。您可以直接使用sort命令

SORT datatable:keys BY nosort GET datatable:*->name GET datatable:*->status 

这会给你的名字和状态的数据表:1和DataTable:2

+0

其实我正在做的是我将数据提取为数据表,然后将每条记录转换为(key,val)对的集合,然后将每个集合添加到一个主键中。最终,主键集将具有其值一个集合。 – Pritam

+0

雅娅这将工作,但不是一个优雅的方式。如果你不把记录作为散列,你将失去对数据的控制。就像你不能只拿到几个字段。记住SETS是随机的,所以如果你有操作喜欢获取前10条记录。每次你将获取新的记录,你将得到不同的记录。 –