gpt4 book ai didi

redis - 具有自动增量键的 Spring Data + Redis

转载 作者:IT王子 更新时间:2023-10-29 06:02:21 24 4
gpt4 key购买 nike

我正在尝试使用 Redis 进行 Spring 数据 CRUD 操作,但主要是我需要将自动增量键存储在 Redis 中。

我尝试过使用 Redis 对 SpringData 进行简单的 CRUD 操作,但没有自动递增键值功能。

我怎样才能做到这一点?

最佳答案

如果您使用的是 spring data redis 存储库,则可以使用 org.springframework.data.annotation.Id 注释需要自动生成值的字段和 @RedisHash 对其类的注释。

@RedisHash("persons")
public class Person {

@Id String id;
String firstname;
String lastname;
Address address;
}

现在要真正拥有一个负责存储和检索的组件,您需要定义一个存储库接口(interface)。

public interface PersonRepository extends CrudRepository<Person, String> {

}

@Configuration
@EnableRedisRepositories
public class ApplicationConfig {

@Bean
public RedisConnectionFactory connectionFactory() {
return new JedisConnectionFactory();
}

@Bean
public RedisTemplate<?, ?> redisTemplate() {

RedisTemplate<byte[], byte[]> template = new RedisTemplate<byte[], byte[]>();
return template;
}
}

鉴于上面的设置,您可以继续将 PersonRepository 注入(inject)到您的组件中。

@Autowired PersonRepository repo;

public void basicCrudOperations() {

Person rand = new Person("rand", "al'thor");
rand.setAddress(new Address("emond's field", "andor"));

repo.save(rand); //1

repo.findOne(rand.getId()); //2

repo.count(); //3

repo.delete(rand); //4
}
  1. 如果当前值为 null 或重复使用已设置的 id 值,则生成一个新的 id 并将类型为 Person 的属性存储在 Redis 哈希中,其中的键具有模式 keyspace:id 在这种情况下,例如。人员:5d67b7e1-8640-4475-beeb-c666fab4c0e5。
  2. 使用提供的 ID 检索存储在 keyspace:id 的对象。
  3. 计算由@RedisHash on Person 定义的键空间 persons 中可用的实体总数。
  4. 从 Redis 中删除给定对象的键。

引用:http://docs.spring.io/spring-data/redis/docs/current/reference/html/

关于redis - 具有自动增量键的 Spring Data + Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43341864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com