Redis 中 key 和 value 都可以存储中文,不过 redis 在存储的时候会将中文进行序列化,存储的是字节码;当 value 中包含中文时,一般通过 redis-cli 命令行解析出的中文显示看似乱码,其实是输出十六进制的字符串。
解决方法
如上描述,不显示所谓乱码(十六进制字符串)的中文,可以在 redis-cli
命令行后加 -raw
参数表示按数据原有格式打印数据。
knowledgedict@MacBook-Pro ~ $ redis-cli --raw
127.0.0.1:6379> set demo 人工神经网路
OK
127.0.0.1:6379> get demo
人工神经网路
127.0.0.1:6379> exit
knowledgedict@MacBook-Pro ~ $ redis-cli
127.0.0.1:6379> get demo
"\xe4\xba\xba\xe5\xb7\xa5\xe7\xa5\x9e\xe7\xbb\x8f\xe7\xbd\x91\xe8\xb7\xaf"
127.0.0.1:6379> exit
knowledgedict@MacBook-Pro ~ $ redis-cli --raw
127.0.0.1:6379> get demo
人工神经网路