Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Performing search in StackExchange.Redis

I'm using Stack Exchange .Net Redis provider to store and retrieve values. I would like to know how can I search for certain records inside Redis (like any database, search needs to be executed in Redis instance not in .Net application)

Example:

public class Employee
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    public int Salary {get;set;}
}

If I have 100,000 records of employees stored as .Net "List<Employee> lstEmployee = new List<Employee>();" in Redis cache server and would like to fetch only the record whose age >50 and salary > 5000, how should I code for it?

Disclosure: I'm just getting started with Redis using this example.

like image 941
SoftwareQuestion Avatar asked Mar 16 '23 05:03

SoftwareQuestion


1 Answers

First, a "cache server" is not intended to be used as a queryable store. If we assume instead that you mean simply a nosql backend, then ... well, frankly, that doesn't sound like the sort of query I would try and do via redis. The point of redis is that you build whatever indexes you need yourself. If you want ordered range queries (the age / salary), then a sorted set and ZRANGEBYSCORE is probably a viable option; however, intersecting these two queries is more difficult. You could try asking the same question ib the redisdb google-group, but just as a general redis question - not specific to any client library such as SE.Redis. If the operations exist ib redis, then you can use the client library to invoke them.

I'm wondering, however, whether "elastic" might be a better option for what you describe.

like image 51
Marc Gravell Avatar answered Mar 23 '23 14:03

Marc Gravell