I am using redis-om and Java, I get Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR unknown command 'JSON.SET'
Here is the code that I am using:
@SpringBootApplication
@Configuration
@EnableRedisDocumentRepositories(basePackages = "jphaugla.redisom.com.romsdocuments.*")
public class RomsDocumentsApplication {
@Autowired
CompanyRepository companyRepo;
@Bean
CommandLineRunner loadTestData() {
return args -> {
Company redis = Company.of("https://redis.com", new Point(-122.066540, 37.377690), 526,
2011, "Redis", "Salavatore Sanfilippo");
redis.setTags(Set.of("fast", "scalable", "reliable"));
companyRepo.save(redis);
};
}
public static void main(String[] args) {
SpringApplication.run(RomsDocumentsApplication.class, args);
}
}
and It is dependency in my pom.xml:
<dependency>
<groupId>com.redis.om</groupId>
<artifactId>redis-om-spring</artifactId>
<version>0.6.3</version>
</dependency>
and for more information , I add my document here :
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
@Data
@RequiredArgsConstructor(staticName = "of")
@AllArgsConstructor(access = AccessLevel.PROTECTED)
@Document
public class Company {
@Id
private String id;
@Indexed
private Set<String> tags = new HashSet<String>();
@NonNull
private String url;
@NonNull
@Indexed
private Point location;
@NonNull
@Indexed
private Integer numberOfEmployees;
@NonNull
@Indexed
private Integer yearFounded;
@NonNull
@Searchable
private String name;
@Searchable
@NonNull
private String founder;
private boolean publiclyListed;
}
Java version is 17 ,spring boot version is 2.7.5 , image of Redis : image: "redis/redis-stack:7.2.0-v1"
P.S:I have checked that I had the ReJson module on my Redis and also I am able to call Json.set on my Redis-Cli.
I suspect your code is pointed at a local Redis instance that doesn't have the JSON module installed. Note you'll want BOTH of the JSON and Search modules installed to use Redis OM successfully or you can use Redis Stack that has them installed for you.
To configure your Redis OM application to point at a different Redis instance. Do so like this in
application.properties
:Source: https://github.com/redis/redis-om-spring#configuring-your-redis-connection
Redis Stack (easy way to get the modules): https://redis.io/docs/getting-started/install-stack/