redis——自定义序列化不生效原因

本文介绍了在Spring Boot项目中遇到Redis配置类不生效的问题,问题根源在于配置类所在的包不在主类的扫描范围内。解决方法是调整主类的位置,确保它位于配置类的父级包中,以便于扫描到配置类。此外,作者排除了@Resource或@Autowired使用错误的可能性,并强调了启动类包层级的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

今天在学习redis序列化时明白了redis默认序列化方式是采用的JDK的序列方式,现在一般项目开发都使用Json序列化方式,所以就需要自定义配置类。
RedisTemplate源码中默认使用jdk序列化方式
但自定义的配置类死活不生效!!!
在这里插入图片描述
不生效!
在这里插入图片描述

直接说解决方法!

在这里插入图片描述
​ 默认情况下,扫描范围是主类xxxApplication所在包及其子目录!!!
​ 默认情况下,扫描范围是主类xxxApplication所在包及其子目录
​ 默认情况下,扫描范围是主类xxxApplication所在包及其子目录
因为当时我的配置类(config包下)是在启动类的上层包下(demo包下),所以redis的配置类RedisConfig默认是不能被启动类扫描到的,于是我将启动类换到了他的上层包下(example包下)下,问题成功解决!
在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/eea2c30fe40446a1b5d1df73c7a03aaa.png

可能没有这个问题的出现,我对那句话没什么深刻的理解(默认情况下,扫描范围是主类xxxApplication所在包及其子目录

注:一开始出现这个问题的时候,自己一度怀疑是@Resource或者@Autowired没用对,后来发现和这两个都没问题,就是启动类所在包层级太低 的问题。还有说需要泛化才能生效,自己也都试了,和这个也没关系。
在这里插入图片描述
注:如有错误的地方,欢迎指正。

### Redis配置文件参数设置教程 Redis的配置文件`redis.conf`是一个纯文本文件,用于定义Redis服务器的行为和功能。以下是关于如何修改Redis配置文件以及一些重要参数的具体说明。 #### 修改Redis配置文件的一般方法 要更改Redis的配置文件,可以按照以下流程操作: 1. 找到Redis安装目录下的`redis.conf`文件位置。 2. 使用任何文本编辑器打开该文件(推荐使用vi/vim等工具)。 3. 查找并修改所需的配置项。 4. 保存文件后重启Redis服务使新配置生效。 例如,在Linux环境下可以通过命令找到配置文件路径: ```bash ps aux | grep redis-server ``` 如果需要动态更新某些不需要重启即可生效的配置项,则可利用`CONFIG SET`命令在线调整。不过需要注意的是,并不是所有的选项都支持这种方式[^1]。 #### 常见的重要配置项及其作用 ##### 守护进程模式与PID管理 当希望让Redis以后台形式运行时,需启用daemonize选项并将值设为yes;与此同时还可以通过pidfile指令自定义存储进程ID的位置,默认情况下位于`/var/run/redis.pid`处[^2]: ```conf daemonize yes pidfile /path/to/custom/pid/file ``` ##### 远程访问控制 为了实现跨网络节点间的通信或者监控目的,可能需要用到远程登录特性。这可通过如下所示的方式完成设定——其中$ip代表目标主机地址、$port表示监听端口号而$a则对应认证所需密钥字符串[^3]: ```bash bind $ip protected-mode no requirepass $password ``` > **注意**:出于安全考虑建议仅允许必要的IP地址范围内的客户端发起请求,并始终开启密码保护机制! ##### 数据持久化策略-RDB相关设置 RDB快照是一种定期将内存中的数据集写入磁盘的技术方案。下面列举了几种常见的关联属性描述[^4]: - `save`: 规定满足特定条件触发一次完整的数据库镜像创建过程; ```conf save 900 1 # 如果至少有1个key发生变化每过15分钟就执行一次存档动作 ``` - `stop-writes-on-bgsave-error`: 若上次背景保存失败当前状态下是否阻止进一步的数据变更尝试? - `rdbcompression`: 是否采用LZF算法压缩二进制序列化的结果? - `rdbchecksum`: 开启此开关会在读取或写出RDB文件期间计算CRC64哈希值用来验证一致性情况。 ##### TCP连接处理能力优化-backlog大小调节 Backlog实际上指的是操作系统层面维护的一个等待接受队列长度上限数值。适当增大这个阈值有助于应对瞬态高并发场景下可能出现的新建链接堆积现象[^5]: ```conf tcp-backlog 511 ``` 以上就是针对不同需求场景下的一些典型Redis配置实例展示。当然实际部署过程中还需要综合考量业务特点以及其他外部因素的影响来合理规划各项指标的最佳组合状态。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值