Redis的五种数据结构的内部编码type命令实际返回的就是当前键的数据结构类型,它们分别是string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合) 等,这些只是Redis对外的数据结构。 实际上每种数据结构都有自己底层的内部编码实现,而且是多种实现,这样Redis会在适合的场景选择合适的内部编码。可以看到每种数据结构都有两种以上的内部编码实现,例如stri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-02 09:28:24
                            
                                18阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Redis中存入Key时出现乱码的原因及解决方案
## 引言
在现代互联网应用中,Redis作为高性能的键值数据库,广泛应用于数据存储和缓存。使用Redis存入和读取数据时,如果遇到字符串出现乱码的情况,会影响数据的正常使用,甚至导致程序异常。本文将探讨Redis中存入Key时出现乱码的原因,以及如何解决这一问题,附带代码示例。
## Redis为何出现乱码
在Redis中,任何数据都            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-09-03 04:12:54
                            
                                231阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、key和value乱码2、新增配置类import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 14:00:14
                            
                                79阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            hell,大家早上好、中午好、晚上好、欢迎收看本次文章,我是声音甜美的鸡排妹。今天帮大家解决一个问题,昨晚鸡排妹做Redis缓存的时候出现乱码的问题。好郁闷哦bug这个肯定是Redis的bug,像我这么美的人肯定我不写bug的,不信你去问问反正我就信了。最后去Redis文档看看问题,是序列化问题。所以我想到了一个办法。写了一个Config类@Configuration
public class C            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-09 17:58:38
                            
                                65阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Redis乱码问题一、导入依赖,并配置文件<!-- redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis<            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 10:52:08
                            
                                211阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
              直接打开Redis客户端,如果存储了中文的内容,取出时会发生乱码:  解决办法很简单,打开客户端时加上 --raw,这样就可以了:  顺便说一下,-a后面跟的是密码,打码了,各位见谅!            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-14 21:54:08
                            
                                129阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、背景使用Spring Boot整合Redis,将数据保存到redis后,登陆redis客户端,发现redis key前面多了一串乱码字符\xac\xed\x00\x05t\x00\x17(具体图片就不贴了,类似的图片网上有很多),排查发现是因为spring-data-redis中redisTemplate默认使用JDK的序列化策略JdkSerializationRedisSerializer,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-08 21:58:41
                            
                                472阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            命令使用 ./redis-cli --raw 命令进入,即可查看正常中文              
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-01 18:22:38
                            
                                108阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            问题现象最近使用spring-data-redis RedisTemplate 操作redis时发现存储在redis中的key不是设置的string值,像test:1这样的key乱码了。用Another.Redis.Desktop.Manager工具去查看时,发现变成了一串奇奇怪怪的字符串。前面还多出了许多类似\xac\xed\x00\x05t\x00这种字符串,如下图第二个key问题原因spri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-09 22:29:35
                            
                                176阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            最近使用spring-data-redis 和jedis 操作redis时发现存储在redis中的key不是程序中设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\x00这种字符串 原因是因为RedisTemplate的序列化问题 改用StringRedisTemplate即可解决 但治标不治本。 而且在RedisTemplate下用increment创建的乱码key无            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-30 16:04:45
                            
                                93阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            解决方案需要将key和value进行序列化使用如下序列化方式可以解决问题:StringRedisSerializerGenericToStringSerializerJackson2JsonRedisSerializerJacksonJsonRedisSerializerJdkSerializationRedisSerializerOxmSerializerStringRedisSerialize            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 17:00:57
                            
                                106阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SpringBoot引入Redis很简单,添加以下注解:       然后在application.yml中添加Redis配置:       注:此处有一些额外的配置,比如password等,我这里为省事就不写了。下面我们可以编写测试类了:       测试后发现一个问题,test:1这样的key,乱码了。比如我用Another.Redis.Desktop.Manager工具去查看时,发现变成了一            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-19 11:25:31
                            
                                57阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            redis命令行查看中文不乱码            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-26 23:02:16
                            
                                272阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在SpringBoot项目中,将值存入Redis数据库中,会出现乱码的问题原因:因为spring-data-redis里面对key和value都进行了序列化,将其变成byte[]数组后再调用对应的redis java client进行存储。就会导致存进redis的key发生改变。解决方法:需要手动定义序列化1.在xml里面指定:【未测试】<bean id="redisTemplate" cl            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-29 15:30:49
                            
                                671阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            今个在 window 终端下 Redis 的使用中碰到钉子 ?4ERROR: 原因: 编码问题,Redis 在使用的过程中有中文的内容都是以十六进制的形式存储的,cmd 窗口下默认是 GBK 编码,改成 utf-8 编码即可正常显示。解决办法使用redis-cli --raw
redis-cli --raw使用redis-cli客户端本身的“–raw”参数在连接 redis 时用来输出原始内容。2            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-29 15:30:55
                            
                                0阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在编写网页数据时,发现分类数据的名称有错别字。这个名称是从数据库获取再保存到redis的,于是修改了数据库的错别字,重启redis后发现还是没有修改成功。
 在网页上直接调方法查询数据发现依旧是之前的错别字,估计是redis默认持久化保存了。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 09:53:42
                            
                                201阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Spring Boot 整合redis后使用redisTemplate操作redis,生成的key会乱码,导致通过keys模糊匹配等命令无法找到相应的key值。原因是redis默认使用的jdk的序列化方式,会导致key值乱码。解决办法:配置Redis的序列化方式添加RedisConfig类,使用jackson序列化代替默认的序列化方式。@Configuration
public class Red            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-13 14:15:55
                            
                                336阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            其实这里的"乱码"并不是真的乱码,那是因为我们还缺少了一点配置,那就是对Redis存key或者value的时候,没有配置字符串序列化。没有配置的话是默认使用jdk本身的序列化的,点进去RedisTemplate里面去看,可以看到    因为spring操作redis是在jedis客户端基础上进行的,而jedis客户端与redis交互的时候协议中定义是用byte类型交互            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-15 10:40:26
                            
                                733阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前置知识1.啥是redisTemplate?redisTemplate是SpringDataRedis中的一个工具类,封装了各种对Redis的操作,并将不同数据类型的操作API封装到了不同的类型中举例:下面的语句表示将【"name","谷歌"】这个k-v存入到redis中 redisTemplate.opsForValue().set("name","谷歌"); 2.啥是序列化和反序列化?序列化:            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-21 09:49:59
                            
                                50阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 解决redis存key乱码问题
在使用Redis作为缓存数据库时,我们经常会用到key-value的存储结构。但是有时候我们会遇到一个问题,就是存储到Redis中的key出现了乱码的情况。这个问题可能会导致我们无法正确获取数据,造成系统异常。本文将介绍为什么会出现这种问题以及如何解决这个问题。
## 为什么会出现乱码问题
Redis是一个基于内存的数据存储,它的key和value都是以字            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-06 04:20:24
                            
                                144阅读