web-dev-qa-db-ja.com

値のないRedisストアキー

次のようなredisexpireコマンドを使用する場合 SETEXP & TTL生存時間がそのように機能するため、キーが値を保持する必要がないシナリオがあります。

ただし、redisには任意のキーに値が必要です。

使用するのに最も合理的な値は何ですか?それを読みたくない場合はどうしますか?

31
RienNeVaPlu͢s

実際に何かをredisキーに保存するべきだと誰が言ったのですか?

空の文字列""はredisキーの完全に有効な値であり、可能な最短の値です。

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

ASCII文字1

3
platforms

""の使用は避けます。単純な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>
0
null

自分でredisに出入りするすべてのものをシリアル化しますか?その場合は、「None」などに設定されたセンチネル値(NONE定数など)の使用を検討してください。

0
Greg M. Krsak