Use set or just create keys in redis to check existence? -


i can think of 2 ways of checking existence using redis:

  1. use whole database 'set', , set key , checking existence geting (or using exists mentioned in comment @sergio tulentsev)
  2. use sadd add members key , check existence sismember

which 1 better? problem, compared same amount of keys in single set, if choose first method , number of keys in database gets larger?

in fact, besides these 2 methods, can use hash data structure hexists command (i'll call method third solution).

all these solutions fast enough, , it's not problem if have large set, hash, or keyspace.

so, 1 should use? it depends on lots of things...

does key has value?

keys of both first , third solution can have value, while second solution cannot.

so if there's no value each key, i'd prefer second solution, i.e. set solution. otherwise, have use first or third solution.

does value has structure?

if value not raw string, data structure, e.g. list, set. have use first solution, since hash's value can raw string.

do need set operations?

if need intersection, union or diff operations on multiple data sets, should use second solution. redis has built-in commands these operations, although might slow commands.

memory efficiency consideration

redis takes more memory-efficient encoding small set , hash. when have lots of small data sets, take second , third solution can save lots of memory. see this details.

update

do need set ttl these keys?

as @dizzyf points out in comment, if need set ttl these keys, have use first solution. because items of hash , set not have expiration property. can set ttl entire hash or set, not elements.


Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -