好的,在 REDIS 中,如果我只是想设置 keys = a channel name 和 value = 付费或免费...
所以最终我会得到一个包含 100、1000 等键和值的列表,其中 key 的值(value)将被支付或免费。
channelName, paid or free
所以,那我想来找找 并要求数据库给我所有值(value) = 免费的 channel
设置它的最佳方式/有效方式是什么?
我基本上想查询并返回等于列表或字典中特定值的所有键的列表...
最佳答案
您可以使用 sorted sets , 成员值为 0(免费)或 1(付费)。
在单个键中,您可以存储有序集合的成员,并且每个成员都被赋予一个十进制值。将 free
和 paid
抽象为 0
和 1
值,您可以添加成员(即在您的情况下, channels) 到集合中,然后查询这些。
127.0.0.1:6379> ZADD mychannels 0 1stchannel 1 2ndchannel 1 3rdchannel 0 4thchannel
(integer) 4
127.0.0.1:6379> ZRANGEBYSCORE mychannels 0 0 /* Querying free channels */
1) "1stchannel"
2) "4thchannel"
127.0.0.1:6379> ZRANGEBYSCORE mychannels 1 1 /* Querying paid channels */
1) "2ndchannel"
2) "3rdchannel"
关于caching - Redis 搜索等于某个值的匹配键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21474679/