该错误通常在以下两种情况之一中发生:
Redis版本太旧
这似乎是最有可能的答案。从文档中:
为了使示例正常工作,您必须在本地主机上安装Redis
2.8+并使用默认端口(6379)运行它。或者,您可以更新JedisConnectionFactory以指向Redis服务器。
如果您不关心接收事件,则可以通过创建ConfigureRedisAction Bean来禁用键空间通知设置:
@Beanpublic static ConfigureRedisAction configureRedisAction() { return ConfigureRedisAction.NO_OP;}或XML
<util:constant static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/>
另外,请确保您正在运行Redis 2.8+。
您的Redis实例已禁用或重命名了config命令
对于嵌入式实例,这种情况不太可能发生,因为默认情况下将进行配置。从文档中:
如果使用@EnableRedisHttpSession,则SessionMessageListener并启用必要的Redis
Keyspace事件将自动完成。但是,在安全的Redis环境中,禁用config命令。这意味着Spring Session无法为您配置Redis
Keyspace事件。要禁用自动配置,请将ConfigureRedisAction.NO_OP添加为Bean。例如,Java配置可以使用以下内容:
@Beanpublic static ConfigureRedisAction configureRedisAction() { return ConfigureRedisAction.NO_OP;}或XML
<util:constant static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/>



