一、问题复现(编码错乱)
刚安装好的redis在使用的过程中,若使用到了汉字,则在显示的时候,汉字是不能够正常显示的,因为redis在解析的过程中,会将汉字转换成其他编码的格式,如下图:
二、Redis支持哪些类型的编码?
Redis是一款开源的内存数据库,它可以用来存储字符串、哈希、列表、集合和有序集合等类型的键值对数据,支持灵活的多种字符集,从而丰富用户体验。
Redis支持的字符集包括US-ASCII、ISO⑻859⑴、UTF⑻、GBK等多种全球性字符集。US-ASCII字符集,也称为7位ASCII码,是最经常使用的字符集,其中的128个可打印的字符,在大多数英语语言中正确表示文本文件内容,Redis采取US-ASCII字符集存储和操作String类型的数据,以最大程度减少存储空间。
ISO⑻859⑴则是一种多国语言字符集,由基础的128个ASCII码组合而成,能够支持多国语言,Redis通过ISO⑻859⑴字符集来存储区别的多国语言,例如日语、法语和西班牙语等,从而提升国际化的编码效果和兼容性。
UTF⑻是目前最经常使用的Unicode字符集,由ISO 1756⑴:2018规范,它采取可变长度的编码对象,最多使用4个字节编码,这使得UTF⑻可以表示几近任意语言的字符,Redis使用UTF⑻字符集,处理中文字符内容,具有及时性,轻松上线和可扩大性,是目前行业上普遍推荐使用的字符集方案。
GBK字符集是由国家标准总局定义和部署的简体中文编码,Redis也支持使用,用来满足国内用户的使用需求,如果希望针对国内用户,使用Redis存储文本信息,可以斟酌使用GBK字符集,以提供较好的用户体验。
三、怎么通过设置,才能达到显示中文
3.1、临时设置
Redis 默认的编码格式是 ascii,如果需要在命令行中临时配置 Redis 的编码格式为 UTF-8,可以使用以下命令:
```
redis-cli --raw
```
其中,`--raw` 参数表示以二进制格式读取 Redis 的键值对,这样在输出时就不会使用 Redis 默认的编码格式,而是直接输出二进制值(即 UTF-8 编码的字符串)。
3.2、永久设置
查看当前redis启动的进程号
Windows系统:打开命令提示符(cmd)并输入
tasklist | findstr redis-server
,按Enter键运行该命令,将显示所有包含"redis-server"关键字的进程信息。Linux/Mac系统:在终端中输入
ps aux | grep redis-server
,然后按Enter键运行该命令,将会列出所有与Redis相关的进程及其对应的PID(Process ID)。
关闭redis的服务之后,去到redis的配置文件中将字符集设置为utf-8并写入redis配置文件,可以在redis配置文件(redis.conf)中添加如下行:
这里居然没实现,有时间再看看