php redis中的b/w pset和psetx的区别是什么?是否可以将数组设置为值?

php redis中的b/w pset和psetx的区别是什么?是否可以将数组设置为值?,php,redis,phpredis,Php,Redis,Phpredis,及 vs 是的,用serialize或jasn_encode序列化数据。psetex是精确的setex,这意味着TTL的单位是毫秒,而不是秒。看 作为值,您可以设置任何二进制安全字符串。您可以存储以首选格式序列化的数组,如JSON或CSV,但对数组执行的每个操作都必须完整读取和完整回写 考虑Redis中的其他数据类型:列表、集合、排序集合、散列(映射)。很可能另一种数据类型更适合您的需求。看 您始终可以使用或PEXPIRE设置任何类型的密钥的过期时间,如其他人所述SETEX以秒为单位获取TTL,

vs


是的,用serialize或jasn_encode序列化数据。

psetex
是精确的
setex
,这意味着TTL的单位是毫秒,而不是秒。看

作为值,您可以设置任何二进制安全字符串。您可以存储以首选格式序列化的数组,如JSON或CSV,但对数组执行的每个操作都必须完整读取和完整回写

考虑Redis中的其他数据类型:列表、集合、排序集合、散列(映射)。很可能另一种数据类型更适合您的需求。看


您始终可以使用或
PEXPIRE

设置任何类型的密钥的过期时间,如其他人所述
SETEX
以秒为单位获取TTL,
PSETEX
以毫秒为单位

您可以让
PhpRedis
为您处理序列化,不过:

$redisClient -> psetex('key', 3600, 'value' );

$redisClient -> psetex('key', 3600, 'value' );
$obj_r = new Redis();
$obj_r->connect('localhost', 6379);

$obj_r->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
$obj_r->set('serialized', ['this', 'is', 'an', ['array', 'of', 'values']]);

var_dump($obj_r->get('serialized'));