Redis / Get all keys & values from redis with prefix

194.9k views Asked by At

I store my data in redis. I store in one raw it guid, createday, and it size.

So I define the following:

var dbclient1 = db.createClient();
dbclient1.hmset("doc:3743-da23-dcdf-3213", "date", "2015-09-06 00:00:01", "size", "203")
dbclient1.zadd("cache", 32131, "37463-da23-dcdf-3213")

I wish to view all my files in my db. So I try the following:

dbclient1.hgetall("doc:*", function (err, res){
        console.log(err)
        console.log(res)
})

but res is undefined. How can I do it?

1

There are 1 answers

5
Igor Korkhov On BEST ANSWER

HGETALL returns all fields and values of the hash stored at key, you can't specify a mask: http://redis.io/commands/hgetall

You can call KEYS doc:* to get a list of all keys matching your criteria and then get all values in a loop.

However, an important note per docs:

Warning: consider KEYS as a command that should only be used in production environments with extreme care. It may ruin performance when it is executed against large databases. This command is intended for debugging and special operations, such as changing your keyspace layout. Don't use KEYS in your regular application code. If you're looking for a way to find keys in a subset of your keyspace, consider using SCAN or sets.