通过php代码去弄 总是会被序列化
127.0.0.1:6379> ZRANGE key 0 -1 WITHSCORES
1) "i:1;"
2) "1"
3) "s:6:\"google\";"
4) "1"
5) "i:4;"
6) "2"
7) "s:4:\"i:1;\";"
8) "2"
127.0.0.1:6379> ZRANGE key 0 -1 WITHSCORES
但是 我在cli下 可以直接添加正常. 这是为什么?
127.0.0.1:6379> zadd key 1 google
(integer) 1
127.0.0.1:6379> ZRANGE key 0 -1 WITHSCORES
1) "google"
2) "1"
3) "i:1;"
4) "1"
5) "s:6:\"google\";"
6) "1"
7) "i:4;"
8) "2"
9) "s:4:\"i:1;\";"
10) "2"
127.0.0.1:6379>
因为redis kv模式只能存字符串呀,PHP 的数组怎么变为字符串呢,默认就是序列化,取的时候反序列化
大多数情况下,我们都是手动转为 JSON 字符串再存进 redis 里面的,这样其他程序读取的时候会比较方便
======== 更新 ========
phpredis
扩展的序列化参数有三个值,分别是使用
$redis->getOption(Redis::OPT_SERIALIZER);
方法看看配置了哪一个