求大佬指点哈!redis zadd序列号问题,怎么解决

通过php代码去弄总是会被序列化127.0.0.1:6379>ZRANGEkey0-1WITHSCORES1)"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>ZRANGEkey0-1WITHSCORES但是我在cli下可以直接添加正常.这是为什么?127.0.0.1:6379>zaddkey1google(integer)1127.0.0.1:6379>ZRANGEkey0-1WITHSCORES1)"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>
繁华开满天机
浏览 226回答 2
2回答

Smart猫小萌

因为rediskv模式只能存字符串呀,PHP的数组怎么变为字符串呢,默认就是序列化,取的时候反序列化大多数情况下,我们都是手动转为JSON字符串再存进redis里面的,这样其他程序读取的时候会比较方便========更新========phpredis扩展的序列化参数有三个值,分别是$redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_NONE);//don'tserializedata$redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);//usebuilt-inserialize/unserialize$redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_IGBINARY);//useigBinaryserialize/unserialize使用$redis->getOption(Redis::OPT_SERIALIZER);方法看看配置了哪一个

Qyouu

找到问题了这样就解决了关闭序列化$redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_NONE);//don'tserializedata$redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);//usebuilt-inserialize/unserialize$redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_IGBINARY);//useigBinaryserialize/unserialize$redis->setOption(Redis::OPT_PREFIX,'myAppName:');//usecustomprefixonallkeys
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript