按值 zset 查找 redis 键 - laravel
find redis key by value zset - laravel
我在 redis 中有 zset,如下所示。
Type:zset
TTL:does not expire [E]
Encoding:ziplist
Score Value
1 0358899056725255
13 {"voltage_level":"06","signal_strength":"02"}
我有一台设备在每个连接上都有动态 ip,具有唯一值(此处为 0358899056725255)。当设备重新启动时,它的 ip 将被更改,因此我需要制作一个新的 zset 。我想删除这个特定值的所有旧垃圾 ip。
我做的
Redis::zadd($conn->remoteAddress, '01', $imei); //to add new ip
//scan all ip and check one by one
@start loop
$val=Redis::zrangebyscore($ip[$i], 01, 01);
if($val=='0358899056725255')
Redis::del($conn->remoteAddress);
@end loop
我有 10,000 多台设备,我不想重复,有没有一些简单的解决方案
我想通了
Keep the expiry date on redis, which will be auto expired
Redis::zadd($conn->remoteAddress, '01', $imei); //to add new ip
Redis::expire($conn->remoteAddress, (60*60*24*30));
我在 redis 中有 zset,如下所示。
Type:zset
TTL:does not expire [E]
Encoding:ziplist
Score Value
1 0358899056725255
13 {"voltage_level":"06","signal_strength":"02"}
我有一台设备在每个连接上都有动态 ip,具有唯一值(此处为 0358899056725255)。当设备重新启动时,它的 ip 将被更改,因此我需要制作一个新的 zset 。我想删除这个特定值的所有旧垃圾 ip。
我做的
Redis::zadd($conn->remoteAddress, '01', $imei); //to add new ip
//scan all ip and check one by one
@start loop
$val=Redis::zrangebyscore($ip[$i], 01, 01);
if($val=='0358899056725255')
Redis::del($conn->remoteAddress);
@end loop
我有 10,000 多台设备,我不想重复,有没有一些简单的解决方案
我想通了
Keep the expiry date on redis, which will be auto expired
Redis::zadd($conn->remoteAddress, '01', $imei); //to add new ip
Redis::expire($conn->remoteAddress, (60*60*24*30));