按值zset找到redis键 - laravel

时间:2017-01-23 05:06:53

标签: php laravel redis zset

我在下面的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多台设备,我不想迭代,是否有一些简单的解决方案

1 个答案:

答案 0 :(得分:0)

我想通了

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));