Redis store key without a value

When using the redis expire commands like SETEXP & TTL, there are scenarios in which there is no need for the key to hold a value at all, because the time to live acts as such.

However, redis requires any key to have a value.

What would be the most reasonable value to use - if you don't ever want to read it?

Who said that you should actually store anything in redis key?

Empty string "" is a perfectly valid value for a redis key, and it's a shortest possible one:

> SET foo ""
OK
> GET foo
""
> BITCOUNT foo
(integer) 0

SET – Redis, SET key value [EX seconds|PX milliseconds] [NX|XX] [KEEPTTL]. Available since 1.0.0. Time complexity: O(1). Set key to hold the string value . If key already� *An introduction to Redis data types and abstractions. Redis is not a plain key-value store, it is actually a data structures server, supporting different kinds of values.. What this means is that, while in traditional key-value stores you associate string keys to string values, in Redis the value is not limited to a simple string, but can also hold more complex data struct

I would store one byte of data that could also be broadly interpreted as "truthy", such as the ASCII character 1.

An introduction to Redis data types and abstractions – Redis, Redis is not a plain key-value store, it is actually a data structures server, supporting You may want to collect this information once every hour, without losing a� The Redis module called RedisJSON enables users to store, fetch, and update data (values in JSON) taken from Redis documents. The native data type it applies is the Standard ECMA-404, the Standard JSON Data Interchange Syntax. Using the Redis to Store Json Data. In the RedisJSON module, there are two Redis store JSON methods to use:

I would avoid using "". How about simple 0 ?

127.0.0.1:6379> set akey 0
OK
127.0.0.1:6379> memory usage akey
(integer) 48
127.0.0.1:6379> set akey ""
OK
127.0.0.1:6379> memory usage akey
(integer) 50
127.0.0.1:6379>

DEL key [key ], When a key to remove holds a value other than a string, the individual complexity for this key is O(M) where M is the number of elements in the list, set, sorted set or � Usage like redis_store['key'] = value, redis_store['key'], and del redis_store['key'] is now supported. Thanks, @ariscn! 0.2.0 (2015-04-15) Made 0.1.0's deprecation warned changes final; 0.1.0 (2015-04-15) Deprecation: Renamed flask_redis.Redis to flask_redis.FlaskRedis. Using the old name still works, but emits a deprecation warning, as it

Do you serialize everything coming to and from redis, yourself? If so, you may consider using a sentinel value (like a NONE constant, etc.) which is set to something like 'None'.

EXPIRE key seconds, key, including DEL, SET, GETSET and all the *STORE commands. This means that all the operations that conceptually alter the value stored at the key without� What makes Redis different from other key-value stores is that it provides other operations similar to INCR that can be used to model complex problems. This is why you can use Redis to write whole web applications without using another database like an SQL database, and without going crazy.

Setting keys to None � Issue #190 � andymccurdy/redis-py � GitHub, Or maybe raising an exception, if redis conceptually cannot store null values. Serialize the value stored at key in a Redis-specific format and return it to the user. The returned value can be synthesized back into a Redis key using the RESTORE command. The serialization format is opaque and non-standard, however it has a few semantic characteristics:

How to store an empty set? � Issue #6048 � redis/redis � GitHub, An empty set is totally different than having a missing entry, in a key-value structure: A -> () is not the same as: A -> null but in the Redis world,� Key-value store is a special type of database storage system where data is stored in form of key and value pairs. Redis is different compared to other key-value stores because of the following: Redis is a different evolution path in the key-value databases where values can contain more complex data types, with atomic operations defined on those

Redis Doesn't Store Empty Sets Or Hashes (And Will Delete Empty , Ben Nadel demonstrates that Redis will not store empty sets or empty hashes. And, whats more, will delete sets and hashes when their last members or key are deleted, empty sets; which can lead to unexpected removal of TTL values will precipitate the creation of a new set (on the fly) without a TTL. Removes and returns one or more random elements from the set value store at key. This operation is similar to SRANDMEMBER, that returns one or more random elements from a set but does not remove it. The count argument is available since version 3.2. *Return value. Bulk string reply: the removed element, or nil when key does not exist. *Examples

Comments
  • Amazing question - if a tree falls and so forth. The more I think about it, the more answers I have :)
  • When using the StackExchange Redis client this can be detected by seeing that a RedisValue.IsNull is false but IsNullOrEmpty is true (what an api!).
  • this should be more clear that it is the value for a key 'foo' and not setting key to ""
  • I think this is probably a better answer, in terms of real memory consumption.