Redis 插入中文乱码键

Java 代码:

bash 复制代码
    @Bean
    // 静态代理模式: Redis 客户端代理类增强
    public StringRedisTemplateProxy stringRedisTemplateProxy(RedisKeySerializer redisKeySerializer,
                                                             StringRedisTemplate stringRedisTemplate,
                                                             RedissonClient redissonClient) {
        stringRedisTemplate.setKeySerializer(redisKeySerializer); // UTF-8 实例化过
        return new StringRedisTemplateProxy(stringRedisTemplate, redisDistributedProperties, redissonClient);
    }
bash 复制代码
    @Override
    public void put(String key, Object value, long timeout, TimeUnit timeUnit) {
        // actual 是正确中文信息        
        String actual = value instanceof String ? (String) value : JSON.toJSONString(value);
        stringRedisTemplate.opsForValue().set(key, actual, timeout, timeUnit);
    }

验证:

bash 复制代码
redis-cli -p 6380 --raw

# 执行命令查看键 -> 中文乱码
KEYS *
index12306-ticket-service:train_station_remaining_ticket:2_åŒ---京å---_æ­å·žä¸œ
index12306-ticket-service:train_info:3
distributed_id_generator_config
index12306-ticket-service:train_station_remaining_ticket:1_济å---西_æ­å·žä¸œ
index12306-ticket-service:train_station_remaining_ticket:3_å---京_æµ·å®
index12306-ticket-service:train_station_price:3_åŒ---京_å¾·å·ž
index12306-ticket-service:region_train_station:åŒ---京_æ­å·ž
index12306-ticket-service:train_station_remaining_ticket:4_åŒ---京å---_æ­å·

解决方法:

-> 由于 Redis 中存储的键名本身是乱码格式 -> 清除数据 -> 重新写入

bash 复制代码
127.0.0.1:6380> FLUSHDB
OK
127.0.0.1:6380> KEYS *

127.0.0.1:6380> KEYS *
index12306-ticket-service:train_station_remaining_ticket:3_嘉兴_海宁
index12306-ticket-service:train_station_price:3_北京_杭州
index12306-ticket-service:train_station_remaining_ticket:1_南京南_杭州东
index12306-ticket-service:train_station_remaining_ticket:1_济南西_宁波
index12306-ticket-service:train_station_remaining_ticket:3_南京_嘉兴
相关推荐
掘根34 分钟前
【Qt】常用控件3——显示类控件
开发语言·数据库·qt
码码哈哈爱分享37 分钟前
MariaDB 与 MySQL 区别
数据库·mysql·mariadb
爱敲代码的TOM39 分钟前
深入MySQL底层1-存储引擎与索引
数据库·mysql
GUIQU.40 分钟前
【QT】嵌入式开发:从零开始,让硬件“活”起来的魔法之旅
java·数据库·c++·qt
自信的小螺丝钉3 小时前
Leetcode 146. LRU 缓存 哈希表 + 双向链表
leetcode·缓存·散列表
牛奶咖啡134 小时前
关系数据库MySQL的常用基础命令详解实战
数据库·mysql·本地远程连接到mysql·创建mysql用户和密码·修改mysql用户的密码·设置mysql密码的使用期限·设置和移除mysql用户的权限
ANYOLY5 小时前
Redis 面试宝典
数据库·redis·面试
鲲志说5 小时前
数据洪流时代,如何挑选一款面向未来的时序数据库?IoTDB 的答案
大数据·数据库·apache·时序数据库·iotdb
没有bug.的程序员5 小时前
MVCC(多版本并发控制):InnoDB 高并发的核心技术
java·大数据·数据库·mysql·mvcc
脑花儿7 小时前
ABAP SMW0下载Excel模板并填充&&剪切板方式粘贴
java·前端·数据库