if (!Redis::exists($key)) { $data = self::set($key, JwtToken::getCurrentId()); } else { $data = Redis::get($key); }和 $data = Redis::get($key); if (empty($data)) { $data = self::set($key, JwtToken::getCurrentId()); }哪个更好
时间: 2024-04-26 10:25:25 浏览: 107
keyv-redis:用于Keyv的Redis存储适配器
两种写法都可以实现相同的功能,但是第一个写法可能会更好一些。
这是因为在第一个写法中,我们首先检查 Redis 中是否存在指定的 key,如果不存在则调用 self::set() 方法来设置该 key。这种写法可以避免在 Redis 中重复设置相同的 key,从而减少 Redis 的负载。此外,第一个写法还能够更好地处理 Redis 返回的数据类型,因为 self::set() 方法可以根据需要将数据序列化为字符串并存储到 Redis 中。
而在第二个写法中,我们首先调用 Redis::get() 方法来获取指定的 key,如果返回的数据为空则调用 self::set() 方法来设置该 key。这种写法可能会导致在 Redis 中重复设置相同的 key,从而增加 Redis 的负载。此外,第二个写法还需要在代码中显式地检查返回的数据是否为空,从而增加了代码的复杂度。
阅读全文