【问题标题】:Unable to insert records into redis using redis-om-spring library无法使用redis-om-spring库将记录插入redis
【发布时间】:2022-11-20 23:54:26
【问题描述】:

请在以下情况下帮助我。

我在 redis://default:redispw@localhost:49153 中运行了 redis docker 容器

我正在尝试使用适当的属性从下面的存储库中执行代码

https://github.com/redis/redis-om-spring/tree/main/demos/roms-permits

application.properties 中的属性

spring.redis.host=localhost
spring.redis.username=default
spring.redis.password=redispw
spring.redis.port=49153

执行代码时,出现以下错误。

java.lang.IllegalStateException: 无法执行 CommandLineRunner 在 org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:774) ~[spring-boot-2.7.4.jar:2.7.4] 在 org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:755) ~[spring-boot-2.7.4.jar:2.7.4] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.7.4.jar:2.7.4] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.7.4.jar:2.7.4] 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-2.7.4.jar:2.7.4] 在 com.redis.om.permits.PermitsApplication.main(PermitsApplication.java:94) ~[classes/:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)~[na:na] 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:na] 在 java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] 在 org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.7.4.jar:2.7.4] 由以下原因引起:redis.clients.jedis.exceptions.JedisDataException:ERR unknown command 'FT.DROP',args 开头为:'com.redis.om.permits.models.PermitIdx' 在 redis.clients.jedis.Protocol.processError(Protocol.java:142)~[jedis-3.8.0.jar:na] 在 redis.clients.jedis.Protocol.process(Protocol.java:176)~[jedis-3.8.0.jar:na] 在 redis.clients.jedis.Protocol.read(Protocol.java:230)~[jedis-3.8.0.jar:na] 在 redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:352)~[jedis-3.8.0.jar:na] 在 redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:270)~[jedis-3.8.0.jar:na] 在 io.redisearch.client.Client.dropIndex(Client.java:888) ~[jredisearch-2.2.0.jar:na] 在 io.redisearch.client.Client.dropIndex(Client.java:876) ~[jredisearch-2.2.0.jar:na] 在 com.redis.om.spring.ops.search.SearchOperationsImpl.dropIndex(SearchOperationsImpl.java:176)~[redis-om-spring-0.6.3.jar:na] 在 com.redis.om.spring.RedisJSONKeyValueAdapter.deleteAllOf(RedisJSONKeyValueAdapter.java:210)~[redis-om-spring-0.6.3.jar:na] 在 org.springframework.data.keyvalue.core.KeyValueTemplate.lambda$delete$4(KeyValueTemplate.java:298) ~[spring-data-keyvalue-2.7.3.jar:2.7.3] 在 org.springframework.data.keyvalue.core.KeyValueTemplate.execute(KeyValueTemplate.java:362) ~[spring-data-keyvalue-2.7.3.jar:2.7.3] 在 org.springframework.data.keyvalue.core.KeyValueTemplate.delete(KeyValueTemplate.java:296) ~[spring-data-keyvalue-2.7.3.jar:2.7.3] 在 org.springframework.data.keyvalue.repository.support.SimpleKeyValueRepository.deleteAll(SimpleKeyValueRepository.java:210)~[spring-data-keyvalue-2.7.3.jar:2.7.3] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)~[na:na] 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:na] 在 java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] 在 org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:289)~[spring-data-commons-2.7.3.jar:2.7.3] 在 org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137)~[spring-data-commons-2.7.3.jar:2.7.3] 在 org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121)~[spring-data-commons-2.7.3.jar:2.7.3] 在 org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:530)~[spring-data-commons-2.7.3.jar:2.7.3] 在 org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:286)~[spring-data-commons-2.7.3.jar:2.7.3] 在 org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:640)~[spring-data-commons-2.7.3.jar:2.7.3] 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)~[spring-data-commons-2.7.3.jar:2.7.3] 在 org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139)~[spring-data-commons-2.7.3.jar:2.7.3] 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] 在 jdk.proxy3/jdk.proxy3.$Proxy82.deleteAll(未知来源)~[na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:na] 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)~[na:na] 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:na] 在 java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] 在 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)~[spring-aop-5.3.23.jar:5.3.23] 在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] 在 jdk.proxy3/jdk.proxy3.$Proxy82.deleteAll(未知来源)~[na:na] 在 com.redis.om.permits.PermitsApplication.lambda$loadTestData$0(PermitsApplication.java:31)~[classes/:na] 在 org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:771) ~[spring-boot-2.7.4.jar:2.7.4] ...省略了 10 个常见框架

提前致谢。

【问题讨论】:

    标签: spring redis


    【解决方案1】:

    您可以访问 Redis CLI 并输入 INFOMODULE LIST 吗?在模块列表中,您应该看到如下内容:

    INFO:

    # Modules
    ...
    module:name=search,ver=20405,api=1,filters=0,usedby=[],using=[ReJSON],options=[]
    ...
    

    MODULE LIST:

    2) 1) "name"
       2) "search"
    

    我猜 Command Line Runner 做的第一件事是存储库中的 .deleteAll,它似乎找不到 FT.DROP 命令,因此您可能没有正确版本的 Redis安装所需的模块。

    你可以从https://hub.docker.com/r/redis/redis-stack得到一个

    【讨论】:

      猜你喜欢
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 2023-01-31
      • 2022-06-22
      • 1970-01-01
      • 2020-05-06
      • 2017-09-22
      相关资源
      最近更新 更多