Redis::sismember($setKey, $code); 我现在要判断setKey是否存在然后再来判断是否要更新里面的code
时间: 2024-03-08 19:46:00 浏览: 149
Redis教程(五):Set数据类型
要判断 Redis 中是否存在某个集合,可以使用 Redis 的 `exists` 命令,该命令返回 1(集合存在)或 0(集合不存在)。以下是一个示例:
```
use Illuminate\Support\Facades\Redis;
function isSetExists($setKey) {
return Redis::exists($setKey);
}
```
在上述代码中,使用 `Redis::exists` 方法检查 Redis 中是否存在指定的 `$setKey` 集合,如果存在则返回 1,否则返回 0。
如果集合存在,可以使用 `Redis::sismember` 方法判断集合中是否存在指定的元素,以下是一个示例:
```
use Illuminate\Support\Facades\Redis;
function isCodeExistsInSet($setKey, $code) {
return Redis::sismember($setKey, $code);
}
```
在上述代码中,使用 `Redis::sismember` 方法判断 Redis 的 `$setKey` 集合中是否存在指定的 `code` 值。如果存在,则返回 1,否则返回 0。
如果集合不存在,可以使用 `Redis::sadd` 方法向 Redis 中添加集合及元素,以下是一个示例:
```
use Illuminate\Support\Facades\Redis;
use App\Models\Source;
function refreshSet($setKey) {
$sources = Source::where('is_close', 0)->select('code')->get();
$codes = $sources->pluck('code')->toArray();
Redis::sadd($setKey, ...$codes);
Redis::expire($setKey, 2592000); // 设置过期时间为 30 天
}
```
在上述代码中,从数据库中获取所有有效的 `code` 值,并使用 `pluck` 方法将其转换为数组形式。然后使用 `Redis::sadd` 方法将 `code` 值添加到 Redis 的集合中,并使用 `Redis::expire` 方法设置集合的过期时间为 2592000 秒(30 天)。
阅读全文