I\'m using hash keys to store user details like:
hmset user:1 user_name lee age 21
hmset user:2 user_name david age 25
hmset user:3 user_name chris age 25
You cannot. Redis is a key-value store, not a relational database.
In order to search for a specific data, you need to build an access path to this data. For instance, to get the users having age = 25, you need to build an index to map the age values to users. It can be done with a set. This is the same for the name.
Once you have sets for age and name, you can search users by intersecting the sets. For example:
# Add 3 users
hmset user:1 user_name lee age 21
hmset user:2 user_name david age 25
hmset user:3 user_name chris age 25
# Maintain age index
sadd age:21 1
sadd age:25 2 3
# Maintain name index
sadd name:lee 1
sadd name:david 2
sadd name:chris 3
# Get the ID of users having age = 25 and name = lee
sinter age:25 name:lee
-> will return an empty set