如何确保内存消耗不会随着redis数据库的大小而缩放

时间:2015-04-27 21:29:17

标签: mysql memory redis jedis nosql

我目前正在使用Jedis从redis数据库服务器获取数据。我需要将这些数据推送到MySQL。 redis服务器中有数百万条记录。使用以下语句,我可以将数据复制到一个集合中:

String pattern = "users*";//All keys starting with users
Set<String> users = jedis.keys(pattern)//Read all the keys in to set

现在我的users集包含了所有记录。但是在redis数据库中可能有数百万条记录符合我的模式。这最终将消耗我所有的记忆。我怎么能做下面的事情

for(All the keys that match my pattern){    
   Set<String> set = get current to (current+10000) records from server
   ...Code to push 10K records to MySQL...
   current = current + 10001;
}

或者请建议是否有一个优雅的方法

1 个答案:

答案 0 :(得分:1)

是的,你可以。使用SCAN命令。请查看Jedis Scan Test了解使用示例。